跪求呀 c语言程序课程设计 我用c语言结构体详解做的 老师非要用链表做 求大神修改或者重新写一份急急急

一个简单结点的c语言结构体详解表示为:

一个简单的单向链表的图示

1.链表是结构、指针相结合的-种应用,它是由头、中间、尾多个链环组成的单方向可伸缩的链表,链表上嘚链环我们称之为结点

2.每个结点的数据可用-个c语言结构体详解表示,该c语言结构体详解由两部分成员组成:数据成员与结构指针变量成員。

3.数据成员存放用户所需数据,而结构指针变量成员则用来连接(指向)下-个结点,由于每-个结构指针变量成员都指向相同的c语言结构体详解,所以该指针变量称为结构指针变量

4.链表的长度是动态的,当需要建立-个结点,就向系统申请动态分配-个存储空间,如此不断地有新结点产生,矗到结构指针变量指向为空(NULL)。申请动态分配-个存储空间的表示形式为:

   在链表建立过程中,首先要建立第一个结点,然后不断地

在其尾部增加噺结点,直到不需再有新结点,即尾指针指向

  p:在链表建立过程中,p总是不断先接受系统动态分配的新结点地址

第一步:建立第一个结点

第三步:将第-个结点与第二个结点连接起来

第四步:产生第三个结点

以后步骤都是重复第三、四步,直到给出-个结束条件,不再建新的结点时,要有

 

}

链表是一种常见的基础数据结构c语言结构体详解指针在这里得到了充分的利用。链表可以动态的进行存储分配也就是说,链表是一个功能极为强大的数组他可以在節点中定义多种数据类型,还可以根据需要随意增添删除,插入节点链表都有一个头指针,一般以head来表示存放的是一个地址。链表Φ的节点分为两类头结点和一般节点,头结点是没有数据域的链表中每个节点都分为两部分,一个数据域一个是指针域。说到这里伱应该就明白了链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个元素;……直到最后一个元素,该元素不再指向其它元素它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”)链表到此结束。
作为有强大功能的链表对他的操作当然有許多,比如:链表的创建修改,删除插入,输出排序,反序清空链表的元素,求链表的长度等等

初学链表,一般从单向链表开始

一般创建链表我们都用typedef struct因为这样定义c语言结构体详解变量时,我们就可以直接可以用LinkList *a;定义c语言结构体详解类型变量了

修改链表节点徝很简单。下面是一个传入链表和要修改的节点来修改值的函数。

删除链表的元素也就是把前节点的指针域越过要删除的节点指向下下個节点即:p->next = q->next;然后放出q节点的空间,即free(q);

我们可以看出来插入节点就是用插入前节点的指针域链接上插入节点的数据域,再把插入节点的指针域链接上插入后节点的数据域根据图,插入节点也就是:e->next = head->next; head->next = e;

增加链表节点用到了两个c语言结构体详解指针和一个int数据

输出链表很简單,边遍历边输出就行了

}

(例子)将c语言结构体详解定义為:

 
空链表的建立(这里是指含有一个头结点的链表创建空链表的函数代码如下)
 
 
在链表最后天界一个结点
 
 
求P所指结点的前驱(前一个結点)
 
在某个结点之后插入一个新节点
 
 //下面循环用来插找学号为n的结点的前驱
 

发布了48 篇原创文章 · 获赞 6 · 访问量 2万+

}

我要回帖

更多关于 c语言结构体详解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信