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

还有在插入函数中voidinsert(lnode*p,elemtypex)中的lnode*p有什么用,elemtype可以换成int嘛,为什么前面还要typedefint... 还有在插入函数中
void insert(lnode *p,elemtype x)中的 lnode *p有什么用 ,elemtype可以换成int嘛,为什么前面还要
typedef int elemtype,到底有什么用,请各位大侠指点指点呀!
展开
 我来答
百度网友cf5ccdf
2010-10-29 · 超过14用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:53.2万
展开全部
头插法建链表后面一般还要跟上几句话:(设P为指向目标新建节点的指针)
p -> next = head -> next ;
head -> next = p ;
头结点的next为NULL时,可以方便的讲链尾元素的next自动设成nextNULL

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

如果前面有定义typedef int elemtype
那int型 和 elemtype型 是一样的,只是用elemtype有两个好处:
1.看着好看,方便标识,不然如果你的程序里有很多int的话,会非常难调试。
2.方便修改,如若以后的程序需要二次开发,需要改数据类型的话不必每个int 都改,直接改typedef定义就行了。
gxl5127
2010-10-27
知道答主
回答量:40
采纳率:0%
帮助的人:26.6万
展开全部
为了方便后面插入东西。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友826d391
2010-10-28 · TA获得超过670个赞
知道小有建树答主
回答量:573
采纳率:0%
帮助的人:360万
展开全部
你这个可能是用头插法或尾插法 创建链表 h->next=NUll;是链表尾巴不悬空; void insert(lnode *p,elemtype x)中 lnode *p 表示参数为lnode *类型的指针 该指针一般都指向头结点 方便传递 ;typedef int elemtype至于这句话就是elemtype就是int类型 这是为了方便以后该参数的类型 就比如说 你要将参数类型该为char型 那么就就直接将int改为char typedef char elemtype 主要还是用起来方便一些 希望楼主能理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
54tianping
2010-10-29 · 超过20用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:54.9万
展开全部
定义一个变量或者是什么的应该习惯给该变量赋初始值,这样避免造成意想不到的后果。如果非要赋初始值你会赋什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月落微眠
2010-10-30
知道答主
回答量:41
采纳率:0%
帮助的人:27.4万
展开全部
写上typedef int elemtype 是为了增强代码的重用性,如果下次你插入的是char,double等类型数据,就不用一个个的更改x的类型了,只要改typedef int elemtype 为typedef char elemtype 或 typedef double elemtype ,在代码很长的情况下很好用。

lnode *p 表示参数为lnode *类型的指针,如果代码前面lnode本身就是*型的话是,就是二重指针,这样写传参很方便。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式