EDA365电子论坛网
标题:
建立单链线性表
[打印本页]
作者:
Abricy
时间:
2016-7-13 15:22
标题:
建立单链线性表
通常,在设有“指针”数据类型的高级语言中均存在与其相应的过程或函数。假设p和q是LinkList型的变量,则执行p=(LinkList)malloc(sizeof(L Node))的作用是由系统生成的一个LNode型的结点,同时将该结点的起始位置赋给指针变量p,反之,执行free(q)的作用是由系统回收一个LNode型的结点,回收后的空间可以备作再次生成结点时用。因此,单链表和顺序存储结构不同,它是一种动态结构。整个可用存储系统空间可为多个链表共同享用,每个链表占用的空间不需预先分配划定,而是可以由系统应需求即时生成。因此,建立线性表的链式存储结构的过程就是一个动态生成链表的过程。即从“空表”的初始状态起,依此建立个元素结点,并逐个插入链表。
% Z" ~: O: V0 s3 e
void CreateList_L(LinkList &L,int n){
( h% r" m& z# M9 q8 s/ B" b
//逆位序输入n个元素的值,建立带表头的单链线性表L。
) }# p* G4 @2 _0 a
L=(LinkList)malloc(sizeof(LNode));
8 ]; E4 Q& X8 u" S' e
L->next=NULL;//先建立一个带头结点的单链表
& W& W- X! f7 Y9 o6 ~
for(i=n;i>0;--i){
/ N& B/ s1 K, g
p=(LinkList)malloc(sizeof (LNode));//生成新结点
! M v1 p! ~' R* ~" M# c% f5 a
scanf(&p->data); //输入元素值
1 z# X" m1 U# J! N, K! U) }$ \
p->next=L->next;L->next=p;//插入到表头
1 h4 ]) S+ V& ]7 i q' P$ X
}
- m; G& O+ G/ ^# B/ F8 E- x! E" ~
}//CreateList_L
作者:
Wenghezhong
时间:
2016-7-14 08:54
谢谢楼主,一步步来,学习中……
3 K* a. h& ?8 v6 l
作者:
sunygd
时间:
2016-7-14 14:28
谢谢楼主,一步步来,学习中……
0 j, G K, `- | N# c, g% Y% U) o
作者:
fish1352
时间:
2016-8-3 15:54
支持一下,很不错哦!
: T% b& t2 K; P$ N Q' E/ V4 u
作者:
85486952
时间:
2016-8-4 14:50
谢谢分享,必须赞一个~
@# P) ]2 ^( Q" [4 ?3 d L2 O* I
作者:
hasky
时间:
2016-8-9 10:20
看贴学心得,回贴是美德
$ X( M3 {; _- I3 E$ G
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2