Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Linkedlist-在第n个位置插入_C_Data Structures_Linked List - Fatal编程技术网

C Linkedlist-在第n个位置插入

C Linkedlist-在第n个位置插入,c,data-structures,linked-list,C,Data Structures,Linked List,您需要将上一个节点的->next设置为新节点 您还忘记了for循环{}上的花括号 您还忘记删除原始节点,这不会改变结果,但会浪费内存 #包括 #包括 结构体类型 { int数据; 结构节点*下一步; }; 结构节点*头部; void insertafront(int数据) { 结构节点*temp=(结构节点*)malloc(sizeof(结构节点)); 温度->数据=数据; temp->next=NULL; 温度->下一步=头部; 压头=温度; 返回; } void displayAll() {

您需要将上一个节点的
->next
设置为新节点

您还忘记了for循环
{}
上的花括号

您还忘记删除原始节点,这不会改变结果,但会浪费内存

#包括
#包括
结构体类型
{
int数据;
结构节点*下一步;
};
结构节点*头部;
void insertafront(int数据)
{
结构节点*temp=(结构节点*)malloc(sizeof(结构节点));
温度->数据=数据;
temp->next=NULL;
温度->下一步=头部;
压头=温度;
返回;
}
void displayAll()
{
结构节点*温度=头部;
while(temp!=NULL)
{
printf(“%d\t”,临时->数据);
温度=温度->下一步;
}
printf(“\n”);
}
无效插入位置(整数数据,整数键)
{
int i;
结构节点*新节点=(结构节点*)malloc(sizeof(结构节点));
新建_节点->数据=数据;
新建节点->下一步=空;
结构节点*当前=头部;
结构节点*previous=NULL;
结构节点*temp=NULL;
对于(i=1;不精确;
}
新建节点->下一步=当前->下一步;
如果(上一个!=NULL)
上一步->下一步=新建_节点;
其他的
head=新的_节点;
释放(当前);//释放旧节点的内存
displayAll();
返回;
}
int main()
{
int num,i,data,key;
head=NULL;
printf(“\n要插入多少数据?”);
scanf(“%d”和&num);
对于(i=0;i
更好的解决方案: 虽然更好的解决方案是在不创建新节点的情况下更改选定节点的数据:

void inserttnthposition(int数据,int键)
{
结构节点*当前=头部;
int i;
对于(i=1;不精确;
}
当前->数据=数据;
displayAll();
}
结果: 任何一种方法的结果都将为您提供以下信息:

Enter the data u want to insert:
5
5       3       2       1       2
Enter the data and position u want to insert:
265498
2
5       3       2       1       2
Enter the data u want to insert:
5
5       3       2       1       2
Enter the data and position u want to insert:
265498
2
5       3       2       1       2
Enter the data u want to insert:3
3       2       1
Enter the data and position u want to insert:
4
1
4       2       1