线性表的链式实现例子
#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("\n开始时链表内容\n"); PrintLinkList(L); printf("ListLength(L) : %d\n", ListLength(L)); printf("ListEmpty(L) : %d\n", ListEmpty(L)); //4)链表插入 printf("\n请输入一个元素:"); ElemType x; read(x); printf("插入开头:"); ListInsert(L,1,x); PrintLinkList(L); printf("插入末尾:"); ListInsert(L,ListLength(L)+1,x); PrintLinkList(L); //5)链表删除 printf("\n请选择删除第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("成功\n"); } else printf("删除失败.\n"); printf("链表内容:"); PrintLinkList(L); //6)元素定位 printf("\n请输入一个元素以便定位:"); read(x); i = LocateElem(L,x); if ( i!=0 ) { printf("该元素是表中的第%d个元素.\n",i); } else printf("该元素在表中不存在.\n"); //7)清空链表 ClearList(L); printf("\n最后链表内容\n"); PrintLinkList(L); printf("ListLength(L) : %d\n", ListLength(L)); printf("ListEmpty(L) : %d\n", 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("\n"); }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索链表
, printf
, include
, 内容
, 十字链表
, 链表查询
, 链表插入
, printf+
, 元素
, print
, 链表 初始化
L方法
链表的实现、c语言单向链表的实现、链表的游标实现、java单链表的实现、栈的链表实现,以便于您获取更多的相关知识。
时间: 2024-09-20 18:15:32