不带头结点的单链表的实现
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。
链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
不带头结点的单链表的结构定义:
typedef int ElemType;
typedef struct SNode
{
ElemType data; // 元素
struct Node *next; // 下一个结点的地址
}SNode, *LinkList;
void InitLinkList(LinkList *phead);
void DestroyLinkList(LinkList *phead);
bool InsertLinListPos(LinkList *phead, ElemType value, int pos);
bool InsertLinkListHead(LinkList *phead, ElemType value);
bool InsertLinkListRear(LinkList *phead, ElemType value);
int Length(LinkList *phead);
bool DeleteLinkListHead(LinkList *phead);
bool DeleteLinkListPos(LinkList *phead, int pos);
bool DeleteLinkListRear(LinkList *phead);
void Show(LinkList *phead);
bool Empty(LinkList *phead);
具体实现:
#include "linklist.h"
#include <stdlib.h>