”链表“类型和结点类型的区别
发布网友
发布时间:2022-05-12 19:05
我来回答
共4个回答
热心网友
时间:2023-08-05 11:11
类型:单向链表,双向链表以及循环链表。。
区别:
1、特点不一样
单向链表,特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。
循环链表,它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
2、优势不一样
单向链表,单个结点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小
双向链表很方便地访问它的前驱结点和后继结点。
循环链表,无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。
扩展资料:
循环链表的分类:
(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。
(2)多重链的循环链表——将表中结点链在多个环上
参考资料来源:百度百科-链表
参考资料来源:百度百科-循环链表
热心网友
时间:2023-08-05 11:12
第一个是结点的定义,第二个是链表的定义。
结点是链表的组成单元;
链表包含了表头、表尾结点,还有结点的个数,可通过这些信息访问每个结点。
热心网友
时间:2023-08-05 11:12
链表是结点的集合,0个或多个结点组成一个链表。
节点的结构:数据域(记录数据),指针域(指向下一个结点)
链表的结构:类型1:若干结点依次相连;
类型2:有头指针,指向链表中的第一个结点。初始情况下头指针为NULL;
类型3:有头结点。头结点是只有指针域的特殊结点,指针域存放指向第一个结点的指 针。初始情况下链表只有头结点,头结点的指针域存放指向NULL的指针。头结点在某些情况下会使编程简单。
类型4:有头结点和尾结点。比类型3多一个尾结点。初始情况下链表只有头结点和尾结点,头结点指针指向尾结点,尾结点指针指向NULL。
你给的例子是个栈的结构,相当于类型4,有头结点和尾结点的链表。头结点为base,尾结点为top。base和top的数据域(data)均为NULL。追问也就是说链表的四个类型是可以相互转换的,建立头结点会使编程简单,我其实不用再定义Linklist结构体,单独定义两个Link型变量(top,base)和一个int型变量len也行,是吗?我不明白的是为什么书上还要再定义一个LInnlist型结构体.
追答不定义LinkList结构体也是可以的,但建立这个结构体会使程序简单明了,并存储一些有关链表的额外信息,比如你那里面的长度len。对于栈、队列等ADT的应用,一般要有头尾结点,建立LinkList结构体会十分方便。
热心网友
时间:2023-08-05 11:13
链表是由一个一个的节点连接而成的,一个链表包含N个节点.他们两个是包含关系.
首先,一个节点中包含2部分:1是这个节点所存放的数据;2是一个指针指向这个节点的下一个节点.//注意这个指针也是节点类型.
而链表是由一个一个的节点连接而成的,一个整体的链表包含节点,标识链表首节点位置的头节点,以及节点个数..
其实你这样用c写不太好理解,但是用c++中的类来定义就好理解多了.
class Linklist{//链表类
public:
LInklist(int nlen,LNode* ptop=NULL):m_nlen(nlen),m_ptop(ptop){}
private:
class LNode{ //节点类
public:
LNode(int ndata,LNode*pnext=NULL):m_ndata(ndata),m_pnext(pnext){}
int m_ndata;//节点存储元素
LNode*m_pnext;//指向下一个节点的指针
};
int m_nlen;//存储节点个数
LNode*m_ptop;//指向这个整个链表头结点的指针
};//很容易看出来链表类中包含节点类...