”链表“类型和结点类型的区别
答案:3 悬赏:40 手机版
解决时间 2021-04-13 09:27
- 提问者网友:捧腹剧
- 2021-04-12 17:34
”链表“类型和结点类型的区别
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-04-12 17:40
链表是结点的集合,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结构体会十分方便。
节点的结构:数据域(记录数据),指针域(指向下一个结点)
链表的结构:类型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结构体会十分方便。
全部回答
- 1楼网友:廢物販賣機
- 2021-04-12 20:13
第一个是结点的定义,第二个是链表的定义。
结点是链表的组成单元;
链表包含了表头、表尾结点,还有结点的个数,可通过这些信息访问每个结点。
结点是链表的组成单元;
链表包含了表头、表尾结点,还有结点的个数,可通过这些信息访问每个结点。
- 2楼网友:胯下狙击手
- 2021-04-12 18:57
链表是由一个一个的节点连接而成的,一个链表包含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;//指向这个整个链表头结点的指针
};//很容易看出来链表类中包含节点类...
首先,一个节点中包含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;//指向这个整个链表头结点的指针
};//很容易看出来链表类中包含节点类...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯