数据结构 您所在的位置:网站首页 递归求最大最小元素 数据结构

数据结构

2024-05-26 23:20| 来源: 网络整理| 查看: 265

【递归法求解最大值和最小值】 问题描述:若一个无序的线性表A[MaxSize]采用顺序存储方式,元素类型为整型数。试写出递归算法求出A中的最大元素和最小元素。 要求: 顺序表的数据通过调用算法initRandomize()随机产生。

#include #include #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define TRUE 1 #define FALSE 0 #define MAXSIZE 100 typedef struct Stack { int data[MAXSIZE]; // 栈 int top; // 栈顶指针(实际是数组的下标值) } SqStack; int InitStack(SqStack &S) { S.top=0; } int Push(SqStack &S,int e) { if(S.top>=MAXSIZE) return ERROR; S.data[S.top++]=e; return OK; } int Pop(SqStack &S,int &e) { if(S.top == 0) return ERROR; e=S.data[--S.top];//e=*(S.data+S.top-1) return OK; } int GetHead(SqStack &S,int &e) { if(S.top == 0) return ERROR; e=S.data[S.top-1];//e=*(S.data+S.top-1) return OK; } int Empty(SqStack &S) { if(S.top == 0) return 1; else return 0; } int Full(SqStack S) { if(S.top == MAXSIZE) return 1; else return 0; } #include void initRandomize(int *arr, int n, int min, int max) { int i = 0; srand(time(0)); /*设置种子,并生成伪随机序列*/ for (i = 0; i int i,j,temp; for(i=1;i temp=S.data[j]; S.data[j]=S.data[j+1]; S.data[j+1]=temp; } } } int bubble_min(SqStack &S)//这里不用引用会导致真实S顺序不改变 { int i,j,temp; for(i=1;i temp=S.data[j]; S.data[j]=S.data[j+1]; S.data[j+1]=temp; } } } int recursion_max(SqStack &S,int i,int max) { if(i==S.top) return max; if(S.data[i]>max) { max=S.data[i]; return recursion_max(S,++i,max); } return recursion_max(S,++i,max); } int recursion_min(SqStack &S,int i,int min) { if(i==S.top) return min; if(S.data[i] //Sleep(1000); //initRandomize(&a[0], 11, 1, 1002); int e; for(int i=0;i int e; for(int i=0;i Pop(S,e); printf("%d ",e); } printf("\n"); } int main() { SqStack S; int a[11],i,e; initRandomize(&a[0], 10, 1, 1002); InitStack(S); for(i=0;i Pop(S,e); printf("%d ",e); } printf("\n"); //test_bubble(S,a); test_recursion(S,a) ; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有