|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通常,在设有“指针”数据类型的高级语言中均存在与其相应的过程或函数。假设p和q是LinkList型的变量,则执行p=(LinkList)malloc(sizeof(L Node))的作用是由系统生成的一个LNode型的结点,同时将该结点的起始位置赋给指针变量p,反之,执行free(q)的作用是由系统回收一个LNode型的结点,回收后的空间可以备作再次生成结点时用。因此,单链表和顺序存储结构不同,它是一种动态结构。整个可用存储系统空间可为多个链表共同享用,每个链表占用的空间不需预先分配划定,而是可以由系统应需求即时生成。因此,建立线性表的链式存储结构的过程就是一个动态生成链表的过程。即从“空表”的初始状态起,依此建立个元素结点,并逐个插入链表。# N6 U, ^# {: l4 i' U
void CreateList_L(LinkList &L,int n){7 ?! _ E% A) Q. V8 Y* Q7 v% H4 @# o
//逆位序输入n个元素的值,建立带表头的单链线性表L。
, `% a. F3 i! a& O+ @7 O* m L=(LinkList)malloc(sizeof(LNode));
( ]. B9 ~5 o# E+ N4 G! t, g L->next=NULL;//先建立一个带头结点的单链表2 @. [: E( c" D: q+ g8 N( V+ B5 Y
for(i=n;i>0;--i){
5 C$ k8 h1 n4 N2 J- j' F p=(LinkList)malloc(sizeof (LNode));//生成新结点, R% e' W7 w; _3 S- r. [& }
scanf(&p->data); //输入元素值
) t1 l3 V% T& F: V% b/ s& q5 h/ o0 S p->next=L->next;L->next=p;//插入到表头6 J; O% P. S9 ?3 U1 Z
}' [) o* A+ t5 j8 O5 T4 z' Z2 @7 |
}//CreateList_L |
|