c语言链表

JAY CC 2020-06-28 03:07:09
#include<stdio.h> #include<stdlib.h> //动态链表 新节点作为头 //先创建一个结构体 typedef struct LinkList { int data; struct LinkList* next; }LinkList; //动态插入节点 LinkList* InsertLinkListhead(LinkList* head) { LinkList *newhead; newhead= (LinkList*)malloc(sizeof(LinkList)); printf("请输入你要插入的链表节点的数:\n"); scanf("%d", &(newhead->data)); if (head == NULL) { head = newhead; return head; } else { newhead->next = head; head = newhead; } return head; } //打印链表 void PrintLinkList(LinkList* head) { while (head != NULL) { printf("%d ", head->data); head = head->next; } puts(""); } int main() { LinkList* Head = NULL; Head=InsertLinkListhead(Head); PrintLinkList(Head); system("pause"); return 0; } 求问大佬这个错误怎么改啊
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JAY CC 2020-06-30
  • 打赏
  • 举报
回复
引用 3 楼 5250的回复:
你期待中创建的链表要写入什么数据?
LinkList* InsertLinkListhead(LinkList* head)
{
LinkList *newhead;
newhead= (LinkList*)malloc(sizeof(LinkList));
printf("请输入你要插入的链表节点的数:\n");
scanf("%d", &(newhead->data));
if (head == NULL)
{
head = newhead;
return head;
}
else
{
newhead->next = head;
head = newhead;

}
return head;


你的链表只在头节点里写入了一个节点个数的正数,然后就没了

void PrintLinkList(LinkList* head)
{
while (head != NULL)
{
printf("%d ", head->data);

head = head->next;
}
puts("");
}


在输出节点时,因为你创建的newhead节点并没有设置newhead->next = NULL.所以你的程序可能就无限循环了。
OK大概懂了谢谢哈
JAY CC 2020-06-30
  • 打赏
  • 举报
回复
引用 3 楼 5250的回复:
你期待中创建的链表要写入什么数据?
LinkList* InsertLinkListhead(LinkList* head)
{
LinkList *newhead;
newhead= (LinkList*)malloc(sizeof(LinkList));
printf("请输入你要插入的链表节点的数:\n");
scanf("%d", &(newhead->data));
if (head == NULL)
{
head = newhead;
return head;
}
else
{
newhead->next = head;
head = newhead;

}
return head;


你的链表只在头节点里写入了一个节点个数的正数,然后就没了

void PrintLinkList(LinkList* head)
{
while (head != NULL)
{
printf("%d ", head->data);

head = head->next;
}
puts("");
}


在输出节点时,因为你创建的newhead节点并没有设置newhead->next = NULL.所以你的程序可能就无限循环了。
OK大概懂了谢谢哈
JAY CC 2020-06-30
  • 打赏
  • 举报
回复
引用 3 楼 5250的回复:
你期待中创建的链表要写入什么数据?
LinkList* InsertLinkListhead(LinkList* head)
{
LinkList *newhead;
newhead= (LinkList*)malloc(sizeof(LinkList));
printf("请输入你要插入的链表节点的数:\n");
scanf("%d", &(newhead->data));
if (head == NULL)
{
head = newhead;
return head;
}
else
{
newhead->next = head;
head = newhead;

}
return head;


你的链表只在头节点里写入了一个节点个数的正数,然后就没了

void PrintLinkList(LinkList* head)
{
while (head != NULL)
{
printf("%d ", head->data);

head = head->next;
}
puts("");
}


在输出节点时,因为你创建的newhead节点并没有设置newhead->next = NULL.所以你的程序可能就无限循环了。
OK大概懂了谢谢哈
Simple-Soft 2020-06-28
  • 打赏
  • 举报
回复
你在那里加个断点,调试一下就知道了
5250 2020-06-28
  • 打赏
  • 举报
回复
你期待中创建的链表要写入什么数据?
LinkList* InsertLinkListhead(LinkList* head)
{
LinkList *newhead;
newhead= (LinkList*)malloc(sizeof(LinkList));
printf("请输入你要插入的链表节点的数:\n");
scanf("%d", &(newhead->data));
if (head == NULL)
{
head = newhead;
return head;
}
else
{
newhead->next = head;
head = newhead;

}
return head;


你的链表只在头节点里写入了一个节点个数的正数,然后就没了

void PrintLinkList(LinkList* head)
{
while (head != NULL)
{
printf("%d ", head->data);

head = head->next;
}
puts("");
}


在输出节点时,因为你创建的newhead节点并没有设置newhead->next = NULL.所以你的程序可能就无限循环了。
Simple-Soft 2020-06-28
  • 打赏
  • 举报
回复
head没有初始化

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧