#include <stdio.h>
#include <stdlib.h>
typedef int T;
struct LinkNode {
T data;
LinkNode* next;
};
struct LinkList {
LinkNode* front; //
指向头结点。
LinkNode* rear; //
指向尾结点。
LinkNode* pre; //
指向当前位置结点的前⼀个结点。
LinkNode* curr; //
指向当前位置结点。
int position; //
当前位⼦结点的编号。
int len; //
线性表的⼤⼩(链表结点数)。
};
LinkList* LL_Create()
//
创建⼀个链接存储的线性表,初始为空表,返回
llist
指针。
{
LinkList* llist=(LinkList*)malloc(sizeof(LinkList));
llist->front=NULL;
llist->rear=NULL;
llist->pre=NULL;
llist->curr=NULL;
llist->position=0;
llist->len=0;
return llist;
}
// 2
)
void LL_Free(LinkList* llist)
//
释放链表的结点,然后释放
llist
所指向的结构。
{
LinkNode* node=llist->front;
LinkNode* nextnode;
while(node){
nextnode=node->next;
free(node);
node=nextnode;
}
free(llist);
}
// 3
)
void LL_MakeEmpty(LinkList* llist)
//
将当前线性表变为⼀个空表,因此需要释放所有结点。
{
LinkNode* node=llist->front;
LinkNode* nextnode;
while(node){
nextnode=node->next;
free(node);