发布时间:
来源:CSDN
你们有没有纠结过这样一个问题,就是数据结构链表中结点的“结”到底是哪个字?
说实话,在写这篇博客之前,我一直以为链表中的结点叫“节点”,,所以不管是给代码写注释,还是理解方面,我都觉得是“节点”,今天就来说一下节点和结点到底有什么不同?
(相关资料图)
节点呢,被认为是一个实体,有处理能力,比如,网络上的一台计算机;而结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已,还有就是,要记住:一般算法中点的都是结点。
我们在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称它为数据结点,简称结 点。在链表数据结构中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一个是需要用的实际数据data;另一个就是存储下一个结点地址的指针,即数据域和指针域。数据结构中的每一个数据结点对应于一个存储单元,这种储存单元称为储存结点,也可简称结点。
说到这里,我再补充一个关于链表的知识(不知道有没有哪位童鞋和我一样,在初学时不理解(捂脸))
链表中前驱和后继是啥?
举例来说明哈: (1)对于线性存储结构:
1, 2, 3, ......, n, n+1, .......
结点n+1的直接前驱结点为n结点
(2)而对于链表存储结构
// 结点的定义struct node{int data; // 数据域struct node* next; // 指针域 };
在上面数据结构中,struct node* head表示链表的头结点,head->next表示为头结点head的后继结点;而head则为head->next的前驱结点。