在设计链表的各种运算之前,最重要的准备工作是定义链式存储(即链表)的结点类型,最简单的单链表的结点类型可由数据域data和指针域next两部分组成。然后再分别设计各种运算的具体函数。最后在主函数中实现链表的各种运算时,分别调用相应的函数即可。
新建一个“Win32 Console Application”工程,创建头文件global.h
#include <stdio.h> // NULL, printf()等
#include <malloc.h> // malloc()等
#include <string.h>
// 函数结果状态定义
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef int Status; // 函数返回类型(表示结果状态,如OK等)
创建头文件linklist.h
typedef char* ElemType;
typedef struct node {
ElemType data; //数据域
struct node *next; //指针域
}LNode, *LinkList; //定义单链表的结点结构、单链表类型指针
LinkList InitList(void);
Status DestoryList(LinkList &L);
Status ListInsert(LinkList &L,int i,ElemType e);
Status ListDelete(LinkList &L,int i,ElemType &e);
int ListLength(LinkList L);
Status G