线性表实验报告

本文由用户“etreg”分享发布 更新时间:2021-10-31 07:48:07 举报文档

以下为《线性表实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

河 北 科 技 大 学

实 验 报 告

19级 专业 班学号 2021年 9 月 28 日

姓 名 教 师 郑某某

实验名称 单某某操作 成 绩

实验类型 设计型实验 批阅教师 郑某某

一、实验目的

掌握线性表的抽象数据类型描述。

掌握线性表的链式存储结构的特点,头结点的作用。

掌握单某某的C语言的类型描述形式。

重点掌握单某某的基本运算的实现,对插入和删除运算能进行性能分析。

掌握几个典型的复杂运算,如:归并、逆置、排序等。

二、实验内容

1.给出单某某的存储类型描述。

2.实现单某某的初始化、插入、删除等基本运算。

3.实现单某某的输入、输出运算(最好采用重载输入输出流方式)。

4.实现单某某的逆置、归并、排序等复杂运算。

5.编写主程序实现对这些运算的测试。

三、实验环境

硬 件:CPU I 5 内存4GB,硬盘512GB

操作系统:Windows XP

软件编程环境:VC++6.0

四、实验步骤

1.用VC建立一个控制台应用程序,命名为List。

2.新建一个头文件,命名为datastru.h,包含标示符常量的定义和Status类型定义。

3.新建一个头文件,命名为listlink.h,包含单某某的存储类型描述和基本运算的声明。

4.新建一个程序文件,命名为listlink.cpp,包含单某某基本运算的实现和复杂运算的实现。

5.新建一个主程序文件,命名为listlinkMain.cpp,包含对这些运算的测试。

五、程序源代码(对复杂的设计思想描述要有较详细的注释)

#include

#include

#include

#define MAXSIZE 100

#define ElemType int

#define Status int

//单某某的数据结构

typedef struct LNode

{

ElemType data;

struct LNode *next;

}LNode, *LinkList;

//初始化

int InitList(LinkList &L)

{

L = (LNode *)malloc(sizeof(LNode));

L->next = NULL;

return 1;

}

//输出

void PrintList(LinkList L)

{

printf("当前单某某的所有元素:");

LNode *p;

p = L->next;

while (p != NULL)

{

printf("[%d] ", p->data);

p = p->next;

}

printf("\n");

}

//尾插法创建单某某

int Create(LinkList &L)

{

int n, e;

LNode *temp = L;//声明一个指针指 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。

{

printf("删除失败!!\n");

}

return 1;

}

//按值查找元素

int LocateElem(LNode *L, ElemType e)

{

int i = 1;

LNode *p = L->next;

while (p&&p->data != e) //从第一个结点开始,依次向后遍历比较

{

p = p->next;

i++;

}

if(p) return i;

else return 0;

}

int Search(LNode *L)

{

int flag; ElemType e;

printf("请输入要查找的值:");

scanf("%d", &e);

flag = LocateElem(L, e);

if (flag)

{

printf("该元素的位置为:%d\n", flag);

}

else

{

printf("未找到该元素!!\n");

}

return 1;

}

//功能菜单

void menu()

{

printf("|1.创建|----------|2.插入|\n");

printf("|3.删除|----------|4.查找|\n");

printf("|5.输出|----------|6.退出|\n");

}

int main()

{

LNode *L;

InitList(L);

int choice, len;

while (1)

{

menu();

printf("请输入菜单序号:");

scanf("%d", &choice);

if (6 == choice) break;

switch (choice)

{

case 1:Create(L); ; break;

case 2:Inster(L); break;

case 3:Delete(L); break;

case 4:Search(L); break;

case 5:PrintList(L); break;

default:printf("输入错误!!!\n");

}

}

}



七、结论体会

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

坦白而谈,数据结构让我在不断学习数据结构的过程中不断强化对指针理解,使我明白如何正确有效的使用编程语言。

初步了解算法思想、原理 整明白抽象结构,想要弄清楚一个算法的实现,首先要大致知道这个算法的原理,这是最简单的一步,也是最基础的一步。

注重看懂弄懂会做书上的代码,毕竟那是最基础也是最重要的了解他们的目的,在此基础上深入的了解算法的实现过程,而不是在死记硬背,那样会事倍功半。

坚持上机操作,实践出真知 和所有计算机类的学习一样,数据结构是非常需要动手的一门课程,看书看一天也不如把书上的代码打到电脑上实践一遍,发现错误弄懂,那收获必定匪浅的

勤于练习,寻找感觉 算法是解决问题的方法,掌握树上的只是以后,要去找一些具有综合性的题目来做一做,这些问题里面包含了各种知识点,例如同时蕴含了排序,堆栈的相关知识,只有在解决这类问题的时候,才能知道如何去灵活准确的运用各种算法,才能检验我们是否扎实了课本上的知识。

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. 数据结构与算法实训报告
  2. 计算机等级考试公共基础知识超强总结,栈、队列、树
  3. 自定义数据类型实验
  4. 第一部分 线性表练习题(1-4章)
  5. 公共基础知识点精简版
  6. 数据结构笔记
  7. 黄毛数据结构模拟练习
  8. (数据结构)实验报告单
  9. 复习提纲_6月_测绘工程
  10. 3.2-2 段落编号的应用
  11. 链表的建立课件

以上为《线性表实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览