为什么我的线性链表不能插入节点数据也写不进去数据

weixin_40926388 2017-11-14 07:22:48
#include <stdio.h>
#include <stdlib.h>

//结构体类型
typedef struct snode
{
int name;
int asdf;
}link_node;

//链表结点类型
typedef struct node
{
link_node data;
struct node *next;
}linknode;


//创建链表
linknode *create_empty_linklist()
{
linknode *head = NULL;
head = (linknode *)malloc(sizeof(linknode));
head->next = NULL;
return head;
}

//判断链表是否为空
int is_empty_linlist(linknode *head)
{
return head->next == NULL;
}

//头插法,在头节点之后插入
int insert_head_liklist(linknode *head,int name,int asdf)
{
linknode *temp = NULL;
temp = (linknode *)malloc(sizeof(linknode));
temp->data.name = name;
temp->data.asdf = asdf;
temp->next = head->next;
return 0;
}

//链表输出
int print_linklist(linknode *head)
{
linknode *p = head->next;
while(p)
{
printf("%d%d",p->data.name,p->data.asdf);
p = p->next;//找到尾0->next
}
printf("\n");
return 0;
}

//删除节点
int delete_assign_linklist(linknode *head,int data)
{
linknode *temp = NULL;
linknode *p = head;

temp = (linknode *)malloc(sizeof(linknode));

while(p->next)
{
if (p->next->data.name == data)
{
break;
}
p = p->next;
}
temp = p->next;
p->next = temp->next;

free(temp);
temp = NULL;
return 0;
}

//主函数
void main()
{
linknode *head = create_empty_linklist();
//插入三个节点
insert_head_liklist(head,1,2);
insert_head_liklist(head,2,4);
insert_head_liklist(head,5,6);
print_linklist(head);
system("pause");
}
...全文
92 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
paschen 版主 2017-11-14
你还需要让head->next指向你添加的temp
  • 打赏
  • 举报
回复
int insert_head_liklist(linknode *head,int name,int asdf) { linknode *temp = NULL; temp = (linknode *)malloc(sizeof(linknode)); temp->data.name = name; temp->data.asdf = asdf; temp->next = head->next; head->next = temp; return 0; }
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2017-11-14 07:22
社区公告
暂无公告