|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通常,在设有“指针”数据类型的高级语言中均存在与其相应的过程或函数。假设p和q是LinkList型的变量,则执行p=(LinkList)malloc(sizeof(L Node))的作用是由系统生成的一个LNode型的结点,同时将该结点的起始位置赋给指针变量p,反之,执行free(q)的作用是由系统回收一个LNode型的结点,回收后的空间可以备作再次生成结点时用。因此,单链表和顺序存储结构不同,它是一种动态结构。整个可用存储系统空间可为多个链表共同享用,每个链表占用的空间不需预先分配划定,而是可以由系统应需求即时生成。因此,建立线性表的链式存储结构的过程就是一个动态生成链表的过程。即从“空表”的初始状态起,依此建立个元素结点,并逐个插入链表。- F% j3 H- o2 Z Y
void CreateList_L(LinkList &L,int n){# V. V$ c( [- e( A( Q
//逆位序输入n个元素的值,建立带表头的单链线性表L。* E: i" `' v% M8 [# Y }
L=(LinkList)malloc(sizeof(LNode));% S" I' M) w& Y) f& C: d; I
L->next=NULL;//先建立一个带头结点的单链表5 o8 S& |2 {' ]/ n% X
for(i=n;i>0;--i){
G q; U% D) k( X" w3 t p=(LinkList)malloc(sizeof (LNode));//生成新结点
# q, \% _6 k7 m2 n4 j( _ scanf(&p->data); //输入元素值0 A' q: m7 i4 {! B5 s
p->next=L->next;L->next=p;//插入到表头8 r, C2 G: C3 z+ Y
}. S( _. e1 L' y, s3 l8 [' b
}//CreateList_L |
|