java吧 关注:1,234,167贴子:12,700,266
  • 6回复贴,共1

求高手帮忙解决java的数据结构题

只看楼主收藏回复

1、 以正整数n,i,k作为输入,其中n,i,k>0,且i<n。假定数1,2,…,n是环形排列的。试编写一个程序,从数i开始,按顺时针方向以k为步长打印数,当打印某个数时,应从环中删去该数,这样的过程一直进行到环空为止。例如,当n=10,i=1,k=3时,得到的输出序列是3,6,9,2,7,1,8,5,10,4。
2、 假使A和B是两个按结点值从小到大排列的有序环形链表,试编写一个将两个有序的链表归并为一个按结点值从小到大排列的有序环形链表的程序。
3、 一棵n个结点的完全二叉树以向量(数组)作为存储结构,试设计非递归算法对该完全二叉树进行前序遍历。
4、 在二叉树T中,编写一个非递归程序输出该树的所有叶子结点。
5、 已知单链表H,利用栈的原理写一个算法将其倒置。
6、 已知四个带权的结点:(A,1),(B,2),(C,2),(D,3),构造Huffman数,并给出每个结点的编码。


IP属地:浙江1楼2011-06-27 18:42回复
    这个贴是什么时候发的
    还需要回答么?


    2楼2011-06-27 20:15
    回复
      看来你也不会


      IP属地:浙江3楼2011-06-28 20:54
      回复
        我会第一道
        你不要小瞧我好不好
        而且你这个题目出的不是很好有点不容易看懂


        4楼2011-06-29 14:15
        回复
          import java.util.*;
          public class wanquan1{
          public int bianhao,count;
          int shuzhu[] = new int[10];
          int shuzhu1[] = new int[10];
          public static void main(String[] ares){
          wanquan1 wq = new wanquan1();
          wq.shushu(7,20);
          System.out.println("***************************************");
          for(int h=0;h<wq.shuzhu.length;h++){
          System.out.println(wq.shuzhu[h]);
          }
          System.out.println("***************************************");
          for(int h=0;h<wq.shuzhu1.length;h++){
          System.out.println(wq.shuzhu1[h]);
          }
          }
          public void shushu(int m,int n){
          LinkedList <Integer>list = new LinkedList<Integer>();
          for(int i=1;i<=n;i++){
          list.add(i);
          }
          ListIterator it = list.listIterator();
          for(int z=1;z<=m;z++){
          if(it.hasNext()!=true){
          while( it.hasPrevious()){
          it.previous();
          }
          if(z==m){
          try{
          bianhao =(Integer)it.next();
          it.remove();
          System.out.println(bianhao);
          z=0;
          count++;
          }catch(Exception e){
          }
          }else{
          try{
          it.next();
          }catch(Exception e){
          }
          }
          }else{
          if(z==m){
          bianhao = (Integer)it.next();
          it.remove();
          System.out.println(bianhao);
          count++;
          z=0;
          }else{
          try{
          it.next();
          }catch(Exception e){
          }
          }
          }
          if(count<=10 && count>0){
          shuzhu[count-1]=bianhao;
          }
          if(count>10){
          shuzhu1[count-11]=bianhao;
          }
          }
          }
          }
          哥们这个是我自己写的
          你看看能不能看懂吧
          


          5楼2011-06-29 14:18
          回复
            LS上第一题也太复杂了吧,对错我没试过程序就不知道,但明显不符合面向对象编程了。主方法应该只实现这样的


            6楼2011-06-29 16:46
            回复

              给LZ你做参考,看的懂最好,看不懂慢慢研究,乐趣就在这过程了


              7楼2011-06-29 17:12
              回复