注册 登录
编程论坛 数据结构与算法

两个程序大家帮忙看下结果是什么

zhaoj6677 发布于 2012-12-29 18:57, 381 次点击
(一)void algorithm(BinTree T)
{
 Stack S;BinTree p,q;
 if(T==NULL) return;
 InitStack(S);
 p=T;
 do {
     while(p){                      //(1)
       push(S,p);
       if(p->lchild) p=p->lchild;
       else p=p->rchild;
    }
 
 while(!StackEmpty(S)&&q=getTop(S)&&q->rchild==p)
 {
  p=Pop(S);
  printf("%c",p->data);
 }
 
 if(!StackEmpty(S))               //(2)
 {
  q=getTop(S);
  p=q->rchild;
 }
 }while(!StackEmpty(S));
}

1、标号(1)所对应while的功能
2、标号(1)所对应if的功能
3、算法运行结果
4、说明整个算法的功能


(二)void program(int a[],int n,int max)
{
 int *temp=new int[n];
 int *count=new int[max];
 
 for(int i=0;i<n;i++)
 temp[i]=a[i];
 for(int i=0;i<max;i++)
 count[i]=0;
 for(int i=0;i<n;i++)             //(1)
 count[a[i]]=count[a[i]]+1;
 for(int i=1;i<max;i++)             //(2)
 count[i]=count[i-1]+count[i];
 for(int i=n-1;i>=0;i--)             //(3)
 a[--count[temp[i]]=temp[i];
}

整数数列7,3,8,9,6,1,8,1,2,7,3,4,5存在arr中  program(arr,14,10)  
执行(1)语句之后count状态是?
执行(2)语句之后count状态是?
执行(3)语句之后a状态是?
此算法时间复杂度是?
适合场合?
2 回复
#2
crystall2012-12-30 09:50
如果自己看不出结果是什么? 为何不上机运行,自己去跟一遍呢?
#3
不玩虚的2013-01-02 16:14
恩,上机单步调适下就没文题啦
1