77问答网
所有问题
c的数据结构单链表的头一位为什么要空着
如题
大虾们,具体点啊,举个例子
举报该问题
推荐答案 2009-12-05
并不一定要空着,第一个结点(头结点)可以存放正常的数据,也可以存放链表的长度等信息,但为了操作的一致性,我们一般将链表的第一个结点留空,不存放数据。
这样做有两个好处:
1.你不用判断操作的位置是不是第一个结点,完全可以用一个统一的操作方法去执行操作。若没有这个头结点,那么对于第一个结点的引用,就应该用头指针来引用;若加上这个头结点的话,那么不管是第几个结点,其引用方法都是r.next->data。
2.对于空链表和非空链表也不用再区别操作了。若没有这个头结点的话,对空表的判断应该是头指针Head为空,而判断是否后移到最后一个结点的判断方法是r.next为空,操作不统一;若加上头结点后,那么就不用单独区分第一个结点的情况了,先赋初值后,判断是否移到最后一个结点的方法统一是r.next为空,而不管这个链表是不是空表。
借用“一枪爆三个”的说法:牺牲了一小块内存空间,却能使操作一致,节省操作时间。用空间换时间,你说应不应该?
你自己按我说的把遍历单链表的函数实现一下就明白了,要是不带头结点的话,就要分别考虑空表与非空表两种情况,而带头结点的话,就不用判断了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/GYpv3q8YW.html
其他回答
第1个回答 2009-12-04
其实头一位只是一个指针,在定义的时候,只定义为NODE *head;并未分配空间(比如说NODE *p;p=(NODE *)malloc(sizeof(NODE));p就分配了内存空间),真正的第一个有内容的结点应该是head->next!解答完毕!
第2个回答 2009-12-04
为了操作的方便 牺牲一小块内存 节省时间
有了头结点 对链表第一个元素的操作就和其他元素的操作一样了
还有就是对于非空链表和空链表 头结点也使得他们的操作一致
第3个回答 2009-12-04
2楼说的是对的
第4个回答 2009-12-04
并不一定要空,看你怎么用了。
相似回答
c的数据结构单链表的头一位为什么要空着
答:
其实头一位只是一个指针,在定义的时候,只定义为NODE head;并未分配空间(比如说NODE
p;p=(NODE )malloc(sizeof(NODE));p就分配了内存空间),真正的第一个有内容的结点应该是head->next!解答完毕!
什么
是不带头结点的
单链表
( head为空)?
答:
因为不带头结点的单链表,head本身指向链表的第一个节点,如果head或者head.next为null,说明链表没有节点,为空链表
。不带头结点的单链表通常用于以下情况:内存管理:不带头结点的单链表可以更高效地管理内存。由于没有额外的节点来存储数据,因此可以节省内存空间。插入和删除操作:不带头结点的单链表的插...
c
语言中,头指针,表头指针,头结点,第一结点分别是
什么
???举个例子,谢谢...
答:
头结点的作用是使所有链表(包括空表)
的头
指针非空,并使对
单链表的
插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致。第一节点,不太清楚,应该是链表有效
数据
存储的第一个节点吧,就是去除了头结点的第一个节点。
探索
数据结构
之奇妙世界
答:
数据结构
是计算机科学的重要基础,也是程序员必须掌握的基本知识之一。本文将带你深入探索单链表、静态链表、循环链表、栈、队列等数据结构的“空”与“满”状态,让你更好地了解它们的特点和应用。单链表
单链表的头
结点指针域next为空时,就是空的哦!
数据结构
,不带头结点的
单链表
判空操作
为什么
是head=null 不是head-nex...
答:
带头节点的情况下,
链表空
时还会存在一个节点(即头节点head),所以head不为空,head->next为空 不带头节点的情况下,链表空时,没有任何节点,head指向null
在
单向链表
中,在
单链表
中设置头节点的作用是( ),除首节点外,任何一个节...
答:
1、防止单链表是空的而设的。当链表为空的时候,带头结点
的头
指针就指向头结点.如果当链表为空的时候,头结点的指针域的数值为NULL。2、是为了方便
单链表的
特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点...
数据结构链表的
问题
答:
数据结构单链表的头
指针是指向单链表中第一个结点的指针。如果是带头结点的单链表,则从第二个节点开始才存放数据。这样做是有好处的,可以使空表的操作和非空表的操作统一起来,便于操作的实现。另外一个带头结点的
空链表
,头指针始终不空。
大家正在搜
数据结构单链表的逆置
数据结构单链表的实现
数据结构单链表的逆置算法
数据结构单链表的查找
数据结构两个单链表的交集
数据结构单链表c语言
数据结构单链表
数据结构创建单链表
链表的数据结构
相关问题
数据结构c语言初始化单链表的头结点 为什么这么写不对 求高手...
数据结构:用C语言:创建一个带结点的空链表,并输出。
数据结构(c语言版)的问题:一个单向链表,有一个头结点,那么...
C语言(数据结构)如何对(带头结点)单链表的一个结点进行摘取...
c语言数据结构单链表(头插入法)
数据结构 ,C语言,单链表头插入,语句看不懂请高手指教
C语言数据结构题。用头插法和尾插法建立一个单链表L。
大家帮帮忙数据结构题:带头结点的单链表L为空的条件是什么?