Meta name="Robots" Content="All"> 考试辅导:程序员数据结构笔记(四)_计算机软件水平考试_计算机类考试_学子考试网
网站首页 | 考试学习 | 英语学习 | 求职 |出国留学 | 资源下载 | 论文中心 | 箐箐校园 | 精品课程 | 网络学院 | 网站留言
资格类考试: 公务员考试 报关员考试 导游资格 注册会计 司法考试
外语类考试: 英语四六级 雅思 托福 GRE BEC PETS 职称英语
学历类考试: 高考 考研 自考 成考 专升本
计算机考试: 等级考试 水平考试 微软认证 思科认证 Linux认证
设为主页
联系站长
添加收藏夹
考试辅导:程序员数据结构笔记(四)

考试辅导:程序员数据结构笔记(四)

学子考试网 Ks263.Com 点击数: 2006-11-2 字体:[ ] 收藏本文

 

例2.判断数组元素是否递增
     int jidge(int a[],int n) {
      if(n==1) return 1;
      else
       if(a[0]>a[1]) return 0;
       else return jidge(a+1,n-1);
     }

  例3.求二叉树的高度(根据二叉树的递归性质:(左子树)根(右子树))
     int depth(nodetype *root) {
      if(root==NULL) 
       return 0;
      else {
       h1=depth(root->lch);
       h2=depth(root->rch);
       return max(h1,h2)+1;
      }
      }
  自己想想求二叉树结点个数(与上例类似)

  例4.已知中序遍历和后序遍历,求二叉树.
   设一二叉树的:
   中序 S:E D F B A G J H C I
      ^start1 ^j ^end1
   后序 T:E F D B J H G I C A
      ^start2 ^end2
    node *create(char *s,char *t, int start1,int start2,int end1,int end2) 
    { if (start1>end1) return NULL; //回归条件
     root=(node *)malloc(sizeof(node));
     root->data=t[end2];
     找到S中T[end2]的位置为 j
     root->lch=create(S,T,s1,j-1,start1,j+start2-start1-1);
     root->rch=create(S,T,j+1,end1,j+start2-start1,end2-1);
     return root;
    }

  例5.组合问题
   n 个数: (1,2,3,4,…n)求从中取r个数的所有组合.
   设n=5,r=3;
   递归思想:先固定一位 5 (从另四个数当中选二个)
              5,4 (从另三个数当中选一个)
              5,4,3 (从另二个数当中选零个)
   即:n-2个数中取r-2个数的所有组合
     …
  程序:
   void combire(int n,int r) {
    for(k=n;k>=n+r-1;k--) {
     a[r]=k;
     if(r==0) 打印a数组(表示找到一个解);
     else combire(n-1,r-1);
    }
   }

上一页  [1] [2] 


  • 上一篇文章:

  • 下一篇文章:




  •                            【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    特别推荐
    最新热点
    最新推荐
     网站首页 -  网站地图 -  加入收藏 -  联系我们 -  友情链接 
    冀ICP备05000973号 ©2005-2006 www.ks263.com.版权所有