Welcome

首页 / 软件开发 / 数据结构与算法 / 链表的实现示例

链表的实现示例2013-04-16 本站 smart520线性表的链式实现例子

#include <stdio.h> #include <stdlib.h> #include "ds.h" #define ElemType int //数据元素的类型Status print(ElemType e);// 打印数据元素的方法 bool equal(ElemType a, ElemType b);//比较两个元素相等的方法#include "linklist.h" //打印链表内容void PrintLinkList(LinkList L); int main() { LinkList L; //1)初始化链表InitList(L); //2)插入一些元素: 12,23,34,45 ListInsert(L,1,12); ListInsert(L,1,23); ListInsert(L,1,34); ListInsert(L,1,45); //3)打印链表信息printf("
开始时链表内容
"); PrintLinkList(L); printf("ListLength(L) : %d
", ListLength(L)); printf("ListEmpty(L): %d
", ListEmpty(L)); //4)链表插入printf("
请输入一个元素:");ElemType x; read(x); printf("插入开头:"); ListInsert(L,1,x); PrintLinkList(L); printf("插入末尾:");ListInsert(L,ListLength(L)+1,x); PrintLinkList(L); //5)链表删除 printf("
请选择删除第i(1..%d)个元素:", ListLength(L)); int i; read(i); ElemType e;if ( ListDelete(L,i,e)==OK ) { Status print(ElemType e);//声明print(e)函数printf("删除"); print(e); printf("成功
"); } elseprintf("删除失败.
"); printf("链表内容:"); PrintLinkList(L); //6)元素定位 printf("
请输入一个元素以便定位:"); read(x); i = LocateElem(L,x); if ( i!=0 ) { printf("该元素是表中的第%d个元素.
",i); } elseprintf("该元素在表中不存在.
");//7)清空链表 ClearList(L); printf("
最后链表内容
"); PrintLinkList(L); printf("ListLength(L) : %d
", ListLength(L)); printf("ListEmpty(L): %d
", ListEmpty(L));//8)销毁链表DestroyList(L); system("PAUSE"); return 0; } // 打印数据元素的方法Status print(ElemType e) { printf("%5d",e); return OK; } //比较两个元素相等的方法 bool equal(ElemType a, ElemType b) { return a==b; } //打印链表内容void PrintLinkList(LinkList L) { ListTraverse(L,print); //遍历链表并print()每个元素printf("
"); }