文档详情

数据结构实验一实现单链表各种基本运算的算法.doc

发布:2016-12-12约4.97千字共9页下载文档
文本预览下载声明
实验一:实现单链表各种基本运算的算法 实验目的 掌握单链表存储结构的类型定义; 实现单链表各种基本运算的算法。 实验环境 Windows操作系统; Visual C++ 6.0 实验内容 实现单链表各种基本运算的算法。 概要设计 1.存储结构的类型定义: Typedef struct LNode { ElemType data; Struct LNode *next; }LinkList; 2.单链表示意图: 3.项目组成图: 4.algo2_2.cpp的程序文件包含的函数原型及功能: InitList(LinkList *L) 初始化单链表L DestroyList(LinkList *L) 释放单链表L ListEmpty(LinkList *L)判断单链表L是否为空表 ListLength(LinkList *L)返回单链表L的元素个数 DispList(LinkList *L)输出单链表L GetElem(LinkList *L,int i,ElemType e)获取单链表L的第i个元素 LocateElem(LinkList *L,ElemType e)在单链表L中查找元素e ListInsert(LinkList *L,int i,ElemType e)在单链表L中的第i个位置上插入元素e ListDelete(LinkList *L,int i,ElemType e)在单链表L中删除第i个元素 5.exp2_2.cpp程序文件简介: InitList(LinkList *L) 初始化单链表L DestroyList(LinkList *L) 释放单链表L ListEmpty(LinkList *L) 判断单链表L是否为空表 ListLength(LinkList *L) 返回单链表L的元素个数 DispList(LinkList *L) 输出单链表L GetElem(LinkList *L,int i,ElemType e) 获取单链表L的第i个元素 LocateElem(LinkList *L,ElemType e) 在单链表L中查找元素e ListInsert(LinkList *L,int?i,ElemType e) 在单链表L中的第i个位置上插入元素e ListDelete(LinkList *L,int?i,ElemType e) 在单链表L中删除第i个元素 6.proj2-2的项目的模块结构: 在文件algo2-2中, (1)定义单链表结构类型; (2)初始化单链表 (3)定义释放单链表的函数 (4)定义判断单链表是否为空的函数 (5)定义返回单链表元素个数的函数 (6)定义输出单链表的函数 (7)定义获取第i个元素的函数 (8)定义查找元素的函数 (9)定义插入元素的函数 (10)定义删除元素的函数 在文件exp2-2中分别调用algo2-2中所定义的函数 7.函数调用关系图: 详细设计 源代码清单见附录。 测试、改进、界面 要求:逐一测试各个功能,包括正常测试(例如插入——i在合理范围的测试)、极端情况的测试(例如插入——i超出下限、上限的测试),并逐一做出结论,对出现异常的要给出改进方案。 测试: 插入: i=4: i=-4: i=44: 结论:当i在合理范围时,元素能够准确插入;当i超出下限时,元素能够插入,但总是插入第一个位置;当i超出上限时,元素不能插入。 查找: i=3: i=-3: i=33: 结论:当i在合理范围时,元素能够准确查找到;当i超出下限或超出上限时,元素无法查找。 删除: i=3: i=-3: i=33: 结论:当i在合理范围时,元素能够准确删除;当i超出下限时,元素能够删除,但总是删除第一个位置的元素;当i超出上限时,元素不能删除。 2.改进:为了使在极端情况下,程序能输出Error,修改代码,使其实现以下功能: (1)插入: i=-4: i=44: (2)查找: i=-3: I=33: (3)删除: i=-3: i=33: 附录——源代码清单 /*文件名: algo2_2.cpp*/ #include stdio.h #include malloc.h typedef char ElemType; typedef struct LNode /*定义单链表结点类型*/ { ElemType data; struct LNode *next; } LinkList; void InitList(LinkList *L) { L=(LinkList *)malloc(sizeof(LinkList)); /*创建头结点*/ L-next=
显示全部
相似文档