linklist.cpp
文件
主要包括基本操作,初始化、销毁链表等。
#include <iostream>
# include"linklist.h"
using namespace std;
/******************************
* 链式表 *
*
*/
/*
*初始化链式表
*/
void InitLinkList(LinkList* L)
{
*L = (LinkList)malloc(sizeof(LNode));
if (!L)
exit(OVERFLOW);
(*L)->next = NULL;
}
/*
*销毁链表,不存在该链表了
*/
void DestroyLinkList(LinkList* L) // (LinkList* L)表示这个指针指向的内存空间
{
LinkList temp;
while (*L)
{
temp = (*L)->next;
free(*L);
*L = temp;
}
}
/*
插入元素
*/
Status InsertLinkListElem(LinkList L, int i, Elemtype e)
{
int j = 0;
LinkList s, p = L;
// 先找到插入位置的前一个位置处的结点
while (p && j < i - 1)
{
++j;
p = p->next;
}
if (!p || j > i - 1)
return ERROR;
// 分配内存
s = (LinkList)malloc(sizeof(LNode)); // 链表存储是不相邻的
// 添加第i个结点s
// 插入结点
s->data = e;
s->next = p->next;
p->next = s;
return