线性表的链式表示:用一组任意的存储单元存储线性表的数据元素。
链表的种类:链表的种类多,如单链表,双向链表,静态链表,循环链表等等,本篇只介绍单链表。
单链表的示意图:
存储密度=结点数据本身所占的存储量/结点结构所占的存储总量,所以单链表的存储密度为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
#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