创建文件LinList.cpp,里面存入单链表的方法。
//单链表
#include <stdlib.h>
#define ElemType int
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
/*
LNode *L; 声明一个指向单链表第一个结点得指针 这种命名方式更加强调这是一个结点
LinkList L; 声明一个指向单链表第一个结点得指针 这种命名方式更加强调这是一个单链表
上面两种命名方式是等价的
*/
//初始化(无头结点)
/*
bool InitLinkList(LinkList &L){
L=NULL;//空表,暂时没有结点
return true;
}
*/
//初始化(带头结点)
bool InitLinkList(LinkList &L){
L=(LNode*)malloc(sizeof(LNode));//分配一个头结点
if(L==NULL)
return false;//内存不足,分配失败
L->next=NULL;//头结点之后暂时无节点
return true;
}
//无特别说明得话,下列方法都是针对带头结点的单链表
//尾插法建立单链表
void List_TailInsert(LinkList &L,ElemType a[],int n){
//把a[]中的元素插入到链表里,n表示长度
LNode *s,*r=L;//r为表尾指针
for(int i=0;i<n;i++){
s=(LNode*)malloc(sizeof(LNode));//创建新结点
s->data=a[i];
r->next