求助写一个最简单的单链表
如题,数据结构这一部分真的很不懂啊,书上介绍的也很少,帮我写下,多带点注释,把每一步作用写清楚,谢谢了
----------------解决方案--------------------------------------------------------
自己多看几遍,当时我学数据结构时,回头再看一次你会有很多的收获.
少一点期待,多一些实在.
----------------解决方案--------------------------------------------------------
链表可以多看看书,看谭昊强的书讲的很详细。
----------------解决方案--------------------------------------------------------
先定义一个结构体 在开辟存储空间 放入数据 在用循环 将结构体连接起来
这样就是一个链表拉 最后在将最后的一个接点的next=null
好好看哈书就行拉
----------------解决方案--------------------------------------------------------
家里没有这方面的书,都是些基础的,讲连表的章节很少
----------------解决方案--------------------------------------------------------
帮我写个函数就可以了,
----------------解决方案--------------------------------------------------------
给你看这个程序吧:
# include<stdio.h>
# include<malloc.h>
struct list//结构体
{
int data;
struct list *next;
};
struct list *creat();//创建链表并初始化
void print(struct list *head);//打印链表
void main()
{
struct list *head;
head=creat();
return;
}
struct list *creat()
{
struct list *head,*p,*rear;
int x;
head=(struct list*)malloc(sizeof(struct list));
rear=head;
scanf("%d",&x);
puts("input the list end with '0':\n");
while(x)
{
p=(struct list*)malloc(sizeof(struct list));
p->data=x;
rear->next=p;
rear=p;
scanf("%d",&x);
}
rear->next=NULL;
puts("the list you input is: ");
print(head->next);
return head->next;
}
void print(struct list *head)
{
struct list *p;
p=head;
while(p)
{
printf("%3d",p->data);
p=p->next;
}
}
就是这个了。
----------------解决方案--------------------------------------------------------
我就while循环里面的几句看不懂啊
head=(struct list*)malloc(sizeof(struct list));
rear=head;
先为head开辟一个空间
然后把头节点赋值给rear
这里是什么呢
rear->next=p;
rear=p;
还有,然后建立之后,如何访问其中的结点呢,结点也没有记录吧
----------------解决方案--------------------------------------------------------
你输入一个数就为它申请一个空间(p=(struct list*)malloc(sizeof(struct list));)
然后给它的数据域放入数据(p->data=x;)
然后把头指针指向p(rear->next=p;)
最后把头指针往后移(rear=p;)
----------------解决方案--------------------------------------------------------
到数据结构版块看一下我发的链表帖,看对你有没有帮助.
----------------解决方案--------------------------------------------------------