C++链表及其创建

  • 内容
  • 评论
  • 相关

链表是由一系列连接在一起的结点构成,其中的每个结点都是一个数据结构。

链表的结点通常是动态分配、使用和删除的,允许链表在程序运行时增大或缩小。如果需要将新信息添加到链表中,则程序只需分配另一个结点并将其插入到系列中。如果需要从链表中删除特定的信息块,则程序将删除包含该信息的结点。

链表对数组和矢量的优点

尽管链表的编码和管理比数组更复杂,但它们有一些明显的优势。首先,链表可以容易地扩大或缩小。实际上,程序员并不需要知道链表中有多少个结点。它们只是根据需要在内存中创建。

有人可能会争辩说,链表并不优于矢量(可在标准模板库中找到),因为它们也可以扩展或缩小。然而,链表对于矢量的优势是结点可以插入链表或从链表中删除的速度。要将值插入矢量的中间,需要将插入点之后的所有元素朝矢量的末尾移动一个位置,从而为新值腾出空间。同样,从矢量中删除一个值需要将删除点之后的所有元素都朝矢量的开始方向移动一个位置。而当一个结点插入链表或从链表中删除结点时,其他结点都不必移动。

数组和矢量都属于顺序存储结构(顺序表),由于链表和顺序表在存储结构上的差异,导致它们具有不同的特点,适用的应用场景也有所差异,感兴趣的小伙伴请猛击这里了解详情。

链表的结构

链表中的每个结点都包含一个或多个保存数据的成员。例如,存储在结点中的数据可以是库存记录;或者它可以是由客户的姓名、地址和电话号码等组成的客户信息记录。

除了数据之外,每个结点还包含一个后继指针指向链表中的下一个结点。图 1 给出了单个结点的组成。



图 1 单个结点的组成

本文标题:C++链表及其创建

本文地址:http://www.hosteonscn.com/3924.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注