为什么建立一个头结点的时候要使头结点的指针域为空如: h=(LNode *)malloc(sizeof(LNode)); h->next=NULL

还有在插入函数中
void insert(lnode *p,elemtype x)中的 lnode *p有什么用 ,elemtype可以换成int嘛,为什么前面还要
typedef int elemtype,到底有什么用,请各位大侠指点指点呀!

头插法建链表后面一般还要跟上几句话:(设P为指向目标新建节点的指针)
p -> next = head -> next ;
head -> next = p ;
头结点的next为NULL时,可以方便的讲链尾元素的next自动设成nextNULL

innode 作为指向要插入元素的位置的指针,来标记要插入的位置

如果前面有定义typedef int elemtype
那int型 和 elemtype型 是一样的,只是用elemtype有两个好处:
1.看着好看,方便标识,不然如果你的程序里有很多int的话,会非常难调试。
2.方便修改,如若以后的程序需要二次开发,需要改数据类型的话不必每个int 都改,直接改typedef定义就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-27
为了方便后面插入东西。
第2个回答  2010-10-28
你这个可能是用头插法或尾插法 创建链表 h->next=NUll;是链表尾巴不悬空; void insert(lnode *p,elemtype x)中 lnode *p 表示参数为lnode *类型的指针 该指针一般都指向头结点 方便传递 ;typedef int elemtype至于这句话就是elemtype就是int类型 这是为了方便以后该参数的类型 就比如说 你要将参数类型该为char型 那么就就直接将int改为char typedef char elemtype 主要还是用起来方便一些 希望楼主能理解
第3个回答  2010-10-29
定义一个变量或者是什么的应该习惯给该变量赋初始值,这样避免造成意想不到的后果。如果非要赋初始值你会赋什么呢?
第4个回答  2010-10-30
写上typedef int elemtype 是为了增强代码的重用性,如果下次你插入的是char,double等类型数据,就不用一个个的更改x的类型了,只要改typedef int elemtype 为typedef char elemtype 或 typedef double elemtype ,在代码很长的情况下很好用。

lnode *p 表示参数为lnode *类型的指针,如果代码前面lnode本身就是*型的话是,就是二重指针,这样写传参很方便。
相似回答