知识大全 数据结构考研分类复习真题 第三章 答案[27]

Posted

篇首语:聪明在于勤奋,天才在于积累。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第三章 答案[27]相关的知识,希望对你有一定的参考价值。

   int MaxValue (int a[] int n)//设整数序列存于数组a中 共有n个 本算法求解其最大值   if (n== ) max=a[ ];  else if a[n]>MaxValue(a n ) max=a[n];  else max=MaxValue(a n );  return(max);  

   本题与上题类似 只是这里是同时求n个数中的最大值和最小值的递归算法

  int MinMaxValue(int A[] int n int *max int *min)//一维数组A中存放有n个整型数 本算法递归的求出其中的最小数   if (n> )  if(*max<A[n]) *max=A[n];  if(*min>A[n]) *min=A[n];  MinMaxValue(A n max min);  //算法结束

  [算法讨论]调用本算法的格式是MinMaxValue(arr n &max &min);其中 arr是具有n个整数的一维数组 max= 是最大数的初值 min= 是最小数的初值

   [题目分析] 求两个正整数m和n的最大公因子 本题叙述的运算方法叫辗转相除法 也称欧几里德定理 其函数定义为

  gcd(m n)=  int gcd (int m n)//求正整数m和n的最大公因子的递归算法  if(m<n) return(gcd(n m)) //若m<n 则m和n互换  if(n== ) return(m); else return(gcd(n m%n));  //算法结束  使用栈 消除递归的非递归算法如下   int gcd(int m n)  int s[max][ ];//s是栈 容量max足够大  top= ; s[top][ ]=m; s[top][ ]=n;  while (s[top][ ]!= )  if (s[top][ ]<s[top][ ])//若m<n 则交换两数  t=s[top][ ]; s[top][ ]=s[top][ ]; s[top][ ]=t;  elset=s[top][ ]%s[top][ ]; top++; s[top][ ]=s[top ][ ]; s[top][ ]=t;   return(s[top][ ]);  //算法结束  由于是尾递归 可以不使用栈 其非递归算法如下  int gcd (int m n)  //求正整数m和n的最大公因子  if (m<n)t=m;m=n;n=t;// 若m<n 则m和n互换  while (n!= ) t=m; m=n; n=t%n;  return(m);   //算法结束

cha138/Article/program/sjjg/201311/22695

相关参考

知识大全 数据结构考研分类复习真题 第三章 答案[12]

  见上题的解答  参见上面题  typedefstructnode  elemtypeelemcq[m]; //m为队列最大可能的容量  intfrontrear;  

知识大全 数据结构考研分类复习真题 第三章 答案[13]

  typedefstruct  elemtpq[m];  intfrontcount; //front是队首指针count是队列中元素个数  cqnode;  &nbs

知识大全 数据结构考研分类复习真题 第三章 答案[26]

  [题目分析]本题与上面题基本相同现用类C语言给出该双端队列的定义  #definemaxsize   typedefstruct  datatypeelem[maxsize];  int

知识大全 数据结构考研分类复习真题 第三章 答案[16]

  #definemaxsize栈空间容量  voidInOutS(ints[maxsize])  //s是元素为整数的栈本算法进行入栈和退栈操作  inttop=;   

知识大全 数据结构考研分类复习真题 第三章 答案[3]

  s=(LinkedList)malloc(sizeof(LNode))s>data=x;s>next=r>nextr>next=sr=s  牺牲一个存储单元 &n

知识大全 数据结构考研分类复习真题 第三章 答案[14]

  既不能由输入受限的双端队列得到也不能由输出受限的双端队列得到的输出序列是dbca  ()     ()   &nbs

知识大全 数据结构考研分类复习真题 第三章 答案[23]

  本题与上题本质上相同现用类C语言编写入队和出队算法  ()voidEnQueue(LinkedListrearElemTypex)  //rear是带头结点的循环链队列的尾指针本算法将元素x插入到

知识大全 数据结构考研分类复习真题 第三章 答案[28]

  [题目分析]这是以读入数据的顺序为相反顺序进行累乘问题可将读入数据放入栈中到输入结束将栈中数据退出进行累乘累乘的初值为  PROC test;  CONSTmaxsize=;  VARs

知识大全 数据结构考研分类复习真题 第三章 答案[2]

   n+ top[]+=top[]  两栈顶指针值相减的绝对值为(或两栈顶指针相邻)  ()满 ()空 ()n ()栈底 ()两栈顶指针相

知识大全 数据结构考研分类复习真题 第三章 答案[25]

  [题目分析]双端队列示意图如下(设maxsize=)  用上述一维数组作存储结构把它看作首尾相接的循环队列可以在任一端(end或end)进行插入或删除初始状态end+=end被认为是队空状态end