您的位置:首页 > 编程语言 > C语言/C++

C语言—链表的创建

2017-01-20 14:55 176 查看

基本的链表创建思想

最近在学习结构体,用了一天时间做了一个简易的坐标管理系统,里面涉及有链

表的创建,查找,插入,删除,销毁,排序。我打算每一个都写一个博客,首先

来说创建链表。

很多刚刚接触链表这个名词的时候都无法理解,结构体到底如何一个又一个的联

系起来,其实很容易理解的,在每一个链表的末尾添加一个指向下一个头结点的

指针,他们不就是如同一个铁链一样联系在一起。

首先应该知道链表的结构。



我们首先定义一个head指针,让它指向头结点,然后再开始让P指针指向你所创建的结构体。

                     

举个例子当链表添加两个成员的过程。





                        p = (point *)malloc(sizeof(point));
                        head->next = p;
                        head = p;

大致过程其实很简单,就是先让p指向所开辟的空间。

然后给head->next(head所指向的实例的next成员)赋值为p。

再让head等于p,准备下一次添加成员。

这样就完成了,链表的创建。其实也没有那么难哈。

程序举例

void  initpointlink(point *head)
{
int rows;
int cols;
point *p;
if (head->next == NULL)
{
showtopic("请输入录入坐标(输入(0 0)结束录入)");
scanf("%d %d", &rows, &cols);
fflush(stdin);
while (rows&&cols)
{
p = create(rows, cols);
head->next = p;
head = p;
showtopic("请输入录入坐标(输入(0 0)结束录入)");
scanf("%d %d", &rows, &cols);
fflush(stdin);
}
}
else
showtopic("\n你不能对已有链表初始化\n");
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: