数据结构试验报告

更新时间:2023-12-04 23:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一:ADT的类C描述向C程序的转换实验(2学时)

实验目的:

(1) 复习C语言的基本用法;

(2) 学会用类C的语言对算法进行描述的方法,将类C算法转换成C源程序的方法和过程;

(3) 抽象数据类型的定义和表示、实现;

(4) 加深对数据的逻辑结构和物理结构之间关系的理解; (5) 初步建立起时间复杂度和空间复杂度的概念。 实验内容:(类C算法的程序实现)

(1) 输入一组数据存入数组中,并将数据元素的个数动态地由输入函数完成。求输入数据的最大值、最小值,并通过函数参数返回所求结果; 实验准备:

1) 计算机设备;2) 程序调试环境的准备,如TC环境;3) 实验内容的算法分析与代码设计与分析准备。 实验步骤:

1.安装TC并设置好环境,如果已安装好,可以跳过此步; 2.录入程序代码并进行调试和算法分析;

对实验内容(1)的操作步骤:1) 用类C语言描述算法过程;2) 用C语言环境实现该算法。

对实验内容(2)的操作步骤:1) 完成算法的C实现;2) 分析其时间复杂度和空间复杂度。

3.编写实验报告。

实验结果:// 动态分配数组空间 #include #include

int size,i; int *pArray; int *p;

void malloc_size() {

pArray=(int *)malloc(size*(sizeof(int))); }

int input_size() {

printf(\

printf(\ scanf(\ return 0; }

int input_data() {

printf(\ for(i=0;i

return *pArray; }

int Compare() {

int x,y,i; x=y=p[0];

for(i=0;i=p[i]) x=p[i]; if(y<=p[i]) y=p[i]; }

printf(\ max=%d\\n\ return 0; }

int Output_data() {

p=pArray;

printf(\ for(i=0;i

printf(\ return *pArray; }

void paixu() {

int x=0; int i,j;

printf(\ for(i=0;i=p[j]) { x=p[i];p[i]=p[j];p[j]=x; } } printf(\ }

printf(\}

void main() {

clrscr(); input_size(); malloc_size(); input_data(); Output_data(); Compare(); paixu(); }

实验结果:

实验二 线性表及其基本操作实验(2学时)

实验目的:

(1) 熟练掌握线性表ADT和相关算法描述、基本程序实现结构; (2) 以线性表的基本操作为基础实现相应的程序;

(3) 掌握线性表的顺序存储结构和动态存储结构之区分。

实验内容:(类C算法的程序实现,任选其一。具体要求参见教学实验大纲)

(1) 一元多项式运算的C语言程序实现(加法必做,其它选做); (2) 有序表的合并; (3) 集合的并、交、补运算; 实验准备:

1) 计算机设备;2) 程序调试环境的准备,如TC环境;3) 实验内容的算法分析与代码设计与分析准备。 实验步骤:

1.录入程序代码并进行调试和算法分析; 2.编写实验报告。 实验结果://线性链表

#include #include #define M 6

typedef struct node {

int data;

struct node *next; }*Sqlist;

void Initlialize(Sqlist &L) {

L=(Sqlist)malloc(sizeof(Sqlist)); L->next =NULL; }

int Getlength(Sqlist L) {

int i=0;

Sqlist p=L->next ; while(p!=NULL) {

i++;

p=p->next;

}

return i; }

int Getelem(Sqlist L,int i) {

int j=1,e;

Sqlist p=L->next; while(j

p=p->next ;

j++;

}

e=p->data ;

printf(\第 %d 个元素是:%d\\n\ return 1; }

int Locatelem(Sqlist L,int x) {

int i=0;

Sqlist p=L->next ;

while(p!=NULL&&p->data !=x) { p=p->next ;

i++;

}

if(p==NULL) return 0; else {

printf(\是第 %d 个元素\\n\

return i;

} }

void CreatlistF(Sqlist &L,int a[ ],int n) {

Sqlist s; int i;

L=(Sqlist)malloc(sizeof(Sqlist)); L->next =NULL; for(i=0;i

本文来源:https://www.bwwdw.com/article/jrbt.html

Top