数据结构C语言版实验报告.docx

上传人:b****2 文档编号:23270132 上传时间:2023-05-15 格式:DOCX 页数:7 大小:17.33KB
下载 相关 举报
数据结构C语言版实验报告.docx_第1页
第1页 / 共7页
数据结构C语言版实验报告.docx_第2页
第2页 / 共7页
数据结构C语言版实验报告.docx_第3页
第3页 / 共7页
数据结构C语言版实验报告.docx_第4页
第4页 / 共7页
数据结构C语言版实验报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

数据结构C语言版实验报告.docx

《数据结构C语言版实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构C语言版实验报告.docx(7页珍藏版)》请在冰豆网上搜索。

数据结构C语言版实验报告.docx

数据结构C语言版实验报告

CKBOODwasrevisedintheearlymorningofDecember17,2020.

 

数据结构C语言版实验报告

数据结构(C语言版)实验报告

专业:

计算机科学与技术、软件工程

学号:

_______________________

班级:

_________软件二班______________

姓名:

________朱海霞______________

指导教师:

___刘遵仁________________

青岛大学信息工程学院

2013年10月

实验1

实验题目:

顺序存储结构线性表的插入和删除

实验目的:

了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。

实验要求:

建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。

实验主要步骤:

1、分析、理解给出的示例程序。

2、调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功能:

根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。

程序代码:

#include<>

#include<>

#defineOK1

#defineERROR0

#defineOVERFLOW-2

#defineLIST_INIT_SIZE100

#defineLISTINCREMENT10

typedefstruct{

int*elem;

intlength;

intlistsize;

}Sqlist;

intInitList_Sq(Sqlist&L){

=(int*)malloc(LIST_INIT_SIZE*sizeof(int));

if(!

return-1;

=0;

=LIST_INIT_SIZE;

returnOK;

}

intListInsert_Sq(Sqlist&L,inti,inte){

if(i<1||i>+1)returnERROR;

if=={

int*newbase;

newbase=(int*)realloc,+LISTINCREMENT)*sizeof(int));

if(!

newbase)return-1;

=newbase;

+=LISTINCREMENT;

}

int*p,*q;

q=&[i-1]);

for(p=&[]);p>=q;--p)

*(p+1)=*p;

*q=e;

++;

returnOK;

}

intListDelete_Sq(Sqlist&L,inti,inte){

int*p,*q;

if(i<1||i>returnERROR;

p=&[i-1]);

e=*p;

q=+;

for(++p;p<=q;++p)

*(p-1)=*p;

;

returnOK;

}

intmain(){

SqlistL;

InitList_Sq(L);ertex=a;irstedge=NULL;irstedge;

G->adjlist[i].firstedge=s;irstedge;

G->adjlist[j].firstedge=s;//将新结点*S插入顶点Vj的边表头部

}

}

//=========定义标志向量,为全局变量=======

typedefenum{FALSE,TRUE}Boolean;

Booleanvisited[MaxVertexNum];

//========DFS:

深度优先遍历的递归算法======

voidDFSM(ALGraph*G,inti)

{//以Vi为出发点对邻接链表表示的图G进行DFS搜索

给出你的编码

//==========BFS:

广度优先遍历=========

voidBFS(ALGraph*G,intk){//以Vk为源点对用邻接链表表示的图G进行广度优先搜索

给出你的编码

//==========主函数===========

voidmain()

{

inti;

ALGraph*G;

G=(ALGraph*)malloc(sizeof(ALGraph));

CreatALGraph(G);

printf("PrintGraphDFS:

");

DFS(G);

printf("\n");

printf("PrintGraphBFS:

");

BFS(G,3);

printf("\n");

}

实验结果:

1.邻接矩阵作为存储结构

2.邻接链表作为存储结构

心得体会:

实验6

实验题目:

二分查找算法的实现

实验目的:

掌握二分查找法的工作原理及应用过程,利用其工作原理完成实验题目中的内容。

实验要求:

编写程序构造一个有序表L,从键盘接收一个关键字key,用二分查找法在L中查找key,若找到则提示查找成功并输出key所在的位置,否则提示没有找到信息。

实验主要步骤:

1.建立的初始查找表可以是无序的,如测试的数据为{3,7,11,15,17,21,35,42,50}或者{11,21,7,3,15,50,42,35,17}。

2.给出算法的递归和非递归代码;

3.如何利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性?

程序代码

实验结果:

心得体会:

实验7

实验题目:

排序

实验目的:

掌握各种排序方法的基本思想、排序过程、算法实现,能进行时间和空间性能的分析,根据实际问题的特点和要求选择合适的排序方法。

实验要求:

实现直接排序、冒泡、直接选择、快速、堆、归并排序算法。

比较各种算法的运行速度。

实验主要步骤:

程序代码

实验结果:

心得体会:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1