数据结构(一)单链表

本文介绍了单链表这一基本数据结构,详细阐述了单链表的存储结构和逻辑特性,包括数据域和指针域的概念。讨论了链表相对于数组的优势,并给出了单链表抽象数据类型的类定义。同时,讲解了节点插入的操作步骤,强调了link断接的顺序。文章还提及了头结点插入和删除的两种方法,分别是头插法和尾插法,以及它们对链表逻辑顺序的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 单链表概念

       单链表是一种最简单的链表表示,也叫做线性链表。用它来表示线性表时,用指针表示节点间的逻辑关系。因此单链表的一个存储结点(node)包括两个部分:数据域(data),指针域(link)。data部分用于存放数据,link部分用于存放指针表示该链表中下一个节点的开始存储地址。

      相比于同为线性结构的数组,链表可以很方便的进行扩充,尽管可能链表中顺序与节点的物理存储顺序不一致,但仍然可以通过指针按照逻辑顺序连接起来。链表的优缺点非常明显,方便进行各种增改删除等操作,但将付出额外的存储空间。

单链表的抽象数据类型类定义

       用结构地构成节点node

 struct node     //链表节点定义
     {
		 int data;   //链表数据类型
		 node *link;
     }*p;            //表头指针定义

      则完整的LinkList.h头文件的写法如下。我写了


class LinkList
{
private:
     struct node     //链表节点定义
     {
		 int data;   //链表数据类型
		 node *link;
     }*p;            //表头指针定义

public:

	 LinkList(void);

        ~LinkList(void);

     //返回表头指针
     node * getHeadPoint();                  
     
     //逐个添加链表元素,尾部添加
     void append( int element );                   
     
     //将链表listB与当前链表合并               
     void merger( LinkList::node * hp_listB, int bFirst);   
     
     //从首部添加链表元素
     void addasFirst( int element );         

     //从指定位置将元素生成结点添加链表,如 从链表第 location == 2个元素后,添加 element == 23
     void addAfter( int element, int location); 

     //删除指定链表元素值大小的所有结点
     void remove( int element );           &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值