编译环境:Microsoft Visual C++2010学习版
参考教材:数据结构:C语言版/严蔚敏,李冬梅,吴伟民编
备注:本文留作作者自用,如有错误敬请指出
#include#include using namespace std; #define MAX 10 #define Elemtype int #define Status int int j; typedef struct LNode{ Elemtype data; struct LNode *next; }LNode,*linkList; linkList p,s,q,r; bool InitList(linkList &L){//初始化 L=new LNode; L->next=NULL; return true; } void DestroyList(linkList &L){//销毁 q=L; while(q){ p=q; q=q->next; delete p;} } void ClearList(linkList &L){//清空 q=L->next; while(q){ p=q; q=q->next; delete p;} L->next=NULL; } int ListLength(linkList L){//求表长 p=L->next; j=0; while(p){ ++j; p=p->next;} return j; } bool ListEmpty(linkList L){//判断表是否为空 if(!(L->next)) return true; else return false; } bool GetElem(linkList L,int i,Elemtype &e){//取值 p=L->next;j=1; while(p&&jnext; ++j; } if(!p||j>i) return false; e=p->data; return true; } int LocateElem(linkList L,Elemtype e){//查找 p=L->next;j=1; while(p&&((p->data)!=e)){ p=p->next; j++;} if(j<=MAX) return j; else return 0; } Status ListInsert(linkList &L,int i,Elemtype e){//插入 p=L;j=0; while(p&&j next;++j;} if(!p||j>i-1) return 0; s=new LNode; s->data=e; s->next=p->next; p->next=s; return 1; } Status ListDelete(linkList &L,int i){//删除 p=L;j=0; while(p->next&&j next; ++j;} if(!(p->next)||j>i-1) return 0; q=p->next; p->next=q->next; delete q; return 1; } void CreateList_H(linkList &L,int n){//前插法创建单链表 for(int i=0;i >p->data; p->next=L->next; L->next=p;} } void CreateList_R(linkList &L,int n){//后插法创建单链表 r=L; for(int i=0;i >p->data; p->next=NULL; r->next=p; r=p;} } int main(){ linkList L; Elemtype e; cout<<"---初始化--------"<



