大学计算机a实验实验报告数组,《数据结构》实验五报告.doc

文档介绍:

江西师范大学计算机信息工程学院学生实验报告

专业_网络工程2班姓名_吴睿_ 学号1308093095 日期__2014.12.10

课程名称

数据结构

实验室名称

X4313

实验名称

递归

指导教师

左正康

成绩

实验目的

1.理解递归程序的执行过程

2.掌握应用递归进行问题求解的基本方法

3.应用递归技术对线性表问题进行问题求解

实验原理和内容

基于ArrayIo.h文件中定义的单链表表,完成实验1~4。

实验:

编写递归算法int max(int a[],int left, int right),求数组a[left..right]中的最大数。

请编写一个递归算法函数void partion(int a[], int left, int right),将数组a[left..right]中的所有奇数调整到表的左边,所有偶数调整到表的右边。

请编写递归函数void bubbleSort(int a[],int n),对长度为n的数组采用冒泡法进行升序排序。请编写递归函数int binSearch(int a[], int left, int right,int key),采用二分查找法在数组a[left..right]中查找值为key的元素所在的位置,若查找失败函数返回-1。

4.已知带头结点的单链表结构定义同实验3,假设链表中所有结点值均不相同,请编写一个递归函数linklist max(linklist head),返回表中最大数所在的结点地址,若链表为空,返回NULL。

实验步骤

在visual C++ 6.0中进行编程,调试,完成实验。

程序及运行结果(或实验数据记录及分析)

实验1:

int mymax(int a[],int left,int right)

{

int best;

best=left;

while(left<=right)

{

if(a[best]

{

best=left;

mymax(a,++left,right);

}

else

{

mymax(a,++left,right);

}

}

return a[best];

}

实验2

void partion(int a[], int left,int right)

{

int temp;

if(a==NULL)

return;

else

{

while(left

{

while(a[left]%2==1)

{

left++;

}

while(a[right]%2==0)

{

right--;

}

if(left

temp=a[left];

a[left]=a[right];

a[right]=temp;

}

}

}

}

实验3

void bubbleSort(int a[],int n)

{

int i,temp;

if(n<2)

return;

for(i=0;i

if(a[i]>a[i+1]){

temp=a[i];

a[i]=a[i+1];

a[i+

内容来自淘豆网www.taodocs.com转载请标明出处.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值