77问答网
所有问题
当前搜索:
单链表必须带有头结点吗
引入带头
结点
的
单链表
,是为了解决什么问题?
答:
优势1:第1个位置的插入删除更加方便 若使用
头结点
,则第1个位置的插入和删除都是对p—>next进行操作,而不用动p本身,而且减少了算法分支(即if else分支)优势2:统一空表和非空表的处理 若使用头结点,无论表是否为空,头指针都指向头结点,也就是*LNode类型,对于空表和非空表的操作是一致的...
一个
有
序
单链表
(从小到大),表头指针为head,编写个算法插入个元素为x...
答:
其实通过上面这段算法描述可以看出,应用这个算法同样可以创建一个
链表
。这是因为当最开始时链表为空,即list==NULL,该算法可自动为链表创建一个
结点
。在下面的创建其他结点的过程中,只
要
始终将指针q指向链表的最后一个结点,就可以创建出一个 链表。注意:函数insertList()的参数中有一个LinkList...
单链表
中增加一个
头结点
的目的是为了什么
答:
便于运算的实现。在
单链表
中,增加头结点的目的是便于运算的实现,头结点不仅标识了表中首结点的位置,根据单链表(
包含头结点
)的结构,掌握了表头,就能访问整个链表,增加头结点目的是为了便于运算的实现。
为什么在
链表
的删除或者插入的操作中要用二级指针?
答:
如果用C语言描述
单链表
如下:typedef struct node{ DataType data;//节点的数据域 struct node *next;//节点的指针域 }ListNode;typedef ListNode *LinkList;ListNode *p;//p是节点 LinkList head;//head是头指针 注意最后一句:"LinkList head",这是定义了一个
头结点
,前面已经用typedef定义了Link...
链表
的二级指针操作问题。
答:
其实我想你说的应该是一个普遍的参数传递问题吧。对于一级指针和二级指针的问题。我先说说这个参数传递的差别。你说的:用一级指针的函数添加
结点
,到时候ls->next还是空指针。但是用二级指针添加结点就会是ls->next
有
新值?我不是很明白。而起二级指针ls貌似就么有*ls->next吧。我举个实际例子。
什么叫
单链表
就地逆置?
答:
4、如果
单链表
为空或单链表中只有
头结点
,那么单链表不
需要
逆置,如果单链表中只有一个元素,逆置之后它的位置还是不会改变,所以可以不逆置。当单链表中
有
2个或两个以上的元素时,从第1个元素断开,令它的next为空,依次访问第2个元素到第n个元素,当访问到其中的任意一个元素时,将它插入到头结点...
大侠们怎么用C语言实现初始化一个
链表
啊~~~
答:
typedef struct LNode { char data;struct LNode *next;}LNode,*LinkList;void InitList(LinkList *L) //初始化 { L = (LinkList)malloc(sizeof(LNode));(*L)->next = NULL;} char GetElem(LinkList L,int i) //返回i 位置的元素 { //L为带头
结点
的
单链表
的头指针。LinkList p;...
可以不学数据结构直接学哈希表吗?C语言实现
答:
可以的,哈希表那部分和图,树联系不是很大。直接看是完全可以的,而且哈希这部分也比较容易些。
什么是尾插法?
答:
⒉无论链表是否为空,其头指针都是指向
头结点
的非空指针(空表中头结点的指针域空),因此空表和非空表的处理也就统一了。②带头结点的
单链表
注意:头结点数据域的阴影表示该部分不存储信息。在
有
的应用中可用于存放表长等附加信息。③尾插法建带头
结点链表
算法 LinkList CreatListR1(void){//用...
大神 为什么程序编译运行后 输出会多个零
答:
不清楚你是在哪个环境下运行,问题出在带头结点的
单链表
的头指针head没有初始化为某个空的
头结点
,增加一个就可以了 class LinkList { private:NodeType *Head;public:void create();//建表 LinkList()// 默认构造 { Head = new NodeType;Head->next = NULL;} void display();};另外,后面...
棣栭〉
<涓婁竴椤
14
15
16
17
18
19
20
21
22
76
其他人还搜