C语言带头节点的单链表的初始化和输入值的操作
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;}
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:65
阅读量:65
阅读量:89
阅读量:23
阅读量:49