多语言展示
当前在线:1044今日阅读:26今日分享:39

C语言带头节点的单链表的初始化和输入值的操作

学计算机编程的学生,在学习C语言带头节点的单链表的初始化和输入值的操作,可能知道怎么做,但是具体让他们来写实现代码时,就感觉心有余,而力不足。所以本人写一下关于这些操作的具体实现代码,希望可以让广大爱好编程的朋友,得到帮助。
工具/原料
1

code:blocks

2

vc6.0

方法/步骤
1

首先,我们假设这个带头节点的单链表的数据结构是这样的:typedef struct LNode{     float coef;     int exp;     struct LNode *next;}LNode,*LinkList;typedef struct{     LinkList Head;     LinkList Curr;     LinkList Tail;}Link;

2

然后,下面是它的初始化的实现代码status InitLink(Link &L){     L.Head=L.Tail=(LNode*)malloc(sizeof(LNode));//这里注意是要申请一个结构体节点的空间。     if(!L.Head) return ERROR;     L.Head->exp=0,L.Head->coef=0;//由于是头结点,所以这个节点里面的数据是没有实际意义的,所以为了方便都令为0     L.Head->next=NULL;//这里最好这样写,这样可以防止指针乱指     return OK;}

3

最后是输入值的操作status GetElem(Link &L,float c,int e){     L.Curr=L.Tail->next;//这里的尾指针我们是从头结点开始的,所以每次调用函数都要先让尾指针指向下一个。     L.Curr=(LNode*)malloc(sizeof(LNode));//解释同上     if(!L.Curr) return ERROR;     L.Curr->coef=c,L.Curr->exp=e;     L.Curr->next=NULL;//解释同上     L.Tail=L.Curr;//增加了一个节点,尾指针要下移动一个     return OK;}

注意事项

以上这些,都是本人的学习心得体会,可能有些地方解释不当,希望指正

推荐信息