单链表

本文介绍了单链表的概念,包括链表的存储密度、头结点与首元结点的区别,以及如何通过头插法和尾插法创建单链表。此外,还提供了单链表的C++实现,包括插入、删除、搜索、获取长度和显示链表元素等操作,并展示了二路合并的方法。
摘要由CSDN通过智能技术生成
线性表的链式表示:用一组任意的存储单元存储线性表的数据元素。

链表的种类:链表的种类多,如单链表,双向链表,静态链表,循环链表等等,本篇只介绍单链表。

单链表的示意图:


存储密度=结点数据本身所占的存储量/结点结构所占的存储总量,所以单链表的存储密度为50%,因为需要存储指针数据。

头结点与首元结点:首元结点是链表中第一个元素结点,而头结点是附设在首元结点之前的一个结点,附设头结点的好处是插入和删除时不需要对首元结点做特殊处理。

建立单链表有两种方法:头插法和尾插法,头插法存储的元素顺序与输入顺序相反,而尾插法一致。故可采取头插法的方式将单链表中数据元素逆置。

单链表的具体实现:data域采取string类型。
#include<iostream>
#include<string>
#include<cstdlib>


using namespace std;
struct LinkList
{
string data;
LinkList *next;
};




class LinkListClass
{
private:
LinkList *head;
public:
LinkListClass();
~LinkListClass();
void CreateLinkListF();                   //头插法
void CreateLinkListR();  //尾插法
bool Delete(int i);
bool Insert(int i,string &data);
LinkList* Search(string data);
int GetLength();
void Display();
f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值