1、什么是链表?链表的分类?
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
数据结构中:
2、链表的分类
共有8种链表结构
3、单链表的基本操作
类似于顺序表,我们来实现单链表的基本操作,具体见SList.h 代码中语句及注释。
#pragma once
typedef int SDataType;
//链表的节点
typedef struct SListNode
{
SDataType _data;
struct SListNode* _PNext;
}Node,*PNode;
typedef struct SList //封装了链表的结构
{
PNode _pHead;//指向链表第一个节点
}SList;
void SListInit(SList*s);//链表的初始化
//在链表s最后一个节点后插入一个值为data的节点
void SListPushBack(SList* s, SDataType data);
//删除链表s最后一个节点
void SListPopBack(SList* s);
//在链表s第一个节点前插入值为data的节点
void SListPushFront(SList* s, SDataType data);
//删除链表s的第一个节点
void SListPopFront(SList* s);
//在链表的pos位置后插入值为data的节点
void SListInsert(PNode pos, SDataType data);
//删除链表s中pos位置的节点
void SListErase(SList* s, PNode pos);
// 在链表中查找值为data的节点,找到返回该节点的地址,否则返回NULL
PNode SListFind(SList* s, SDataType data);
//移除链表中第一个值为data的元素
void SListRemove(SList*s, SDataType data);
// 获取链表中有效节点的个数
int SListSize(SList* s);
// 检测链表是否为空
int SListEmpty(SList* s);
版权声明:本文为swag_wg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。