概述
要求:先输出中点的元素值,再输出中点左部的元素值,再输出中点右部的元素值。
递归法: 1.注意递归的出口条件 left>right;
2.只需要处理好一个问题,再用递归处理其余模式相同的小问题。
程序如下:
递归法: 1.注意递归的出口条件 left>right;
2.只需要处理好一个问题,再用递归处理其余模式相同的小问题。
程序如下:
#include <stdio.h>
#include <stdlib.h>
#define Max 100
typedef int datatype;
typedef struct {
datatype A[Max];
int size;
}List;
void creat(List * P)
{
int i=0;
int m;
printf("ÇëÊäÈëÔªËØn");
scanf("%d",&m);
while(m!=-1)
{
P->A[i++]=m;
P->size++;
scanf("%d",&m);
}
}
void init(List * p)
{
p->size=0;
}
void display(List A)
{
int i;
for(i=0;i<A.size;i++)
{
printf("%5d",A.A[i]);
}
}
void display1(List p,int left,int right)
{
int mid;
if(left<=right)// 注意递归的出口条件
{
mid=(left+right)/2;
printf("%5d",p.A[mid]);
display1(p,left,mid-1); //先用递归输出中点左边的值
display1(p,mid+1,right); // 再用递归输出中点右边的值
}
}
int main()
{
List p;
init(&p);
creat(&p);
display(p);
printf("n");
display1(p,0,p.size-1);
return 0;
}
最后
以上就是喜悦灰狼为你收集整理的顺序表的优先遍历的全部内容,希望文章能够帮你解决顺序表的优先遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复