马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
void insert_Linked(list* head, int pos, int x)
{
list* temp = head->next;
list* node = NULL;
node = initial_data(node);
if (pos <= 0 || pos >= head->length) //判断插入位置非法自动插入最后一个
{
printf("插入到最后一个元素!");
while (temp != NULL && temp->next != NULL)
{
temp = temp->next;
}
node->data = x;
temp->next = node;
head->length++; //长度++
return;
}
if (pos == 1) // 判断插入位置是1的情况
{
node->data = x;
head->next = node;
node->next = temp;
head->length++;
return;
}
int i = 1;
while (i<pos-1 && temp != NULL) //判断循环次数且表不为空
{
temp = temp->next;
i++;
}
node->data = x;
node->next = temp->next;
temp->next = node;
head->length++;
return;
}
我发现我要把插入到第一个的写个判断,插入位置非法自动插入到表尾又一个判断,最后才是插入正常位置,有没有办法合并优化一下~~~以上代码是自己理解范围内写的,插入是没有问题了,但是总感觉太长了好业余,希望各位大神们如果帮忙的话,记得打上注释我新手好理解!!! |