开始学习数据结构,我上网找了找堆栈的Code但是不太理解,有两个问题是Linklist,希望大家帮忙看一下,一个是从键盘上输入一组数如果输入-100就表示输入完毕,最后的一个数就是-100,然后加一个数进去,然后查找一个数,如果找到了就显示这个数的位置如果没找到就输出没找到,如果找到这个数了就把它删除,然后把剩下List的第一个和最后一个删除,输出List是否为空,如果不为空还有多少个元素在,分别是什么。然后就可以Exit第二个是希望能给一个Class Stack,方法包括push(),pop(),和set.value()就是后进先出,加数据减少数据了。以上两个问题希望能写出Code,我加分!!谢谢大家了

解决方案 »

  1.   

    去看java.util.LinkedList和java.util.Stack的源代码吧
      

  2.   

    希望两个问题,大家能给个Code出来,比较直观一些。
      

  3.   

    以上两个问题希望能有Code,都是比较基本的,但是Code比较直观,希望大家尽快解决我好散分,祝春节快乐哈
      

  4.   

    第一个题不是很明白,是不是得做一个递归,一直到list为空为止?
    第二个题 如下:
    class IntStack {
       private int top;
       private int data[];
       
       public IntStack() {
           top = 0;
           data = new int[100];
       }
       public IntStack(int n){
    top = 0;
    data = new int[n];
       }
       public void push(int val) {
           data[top++] = val;
       }
       public int pop() {
           return data[--top];
       }
       public int peek() {
           return data[top-1];
       }
    }
      

  5.   

    刚才发错了,应该是这个,Linklist的:
    public class LinStack
    {
    Node head; //堆栈头
    int size; //结点个数 public void LinStack(){ //构造函数
    head = null;
    size = 0;
    } public void push(Object obj){ //入栈
    head = new Node(obj,head); //新结点作为新栈顶
    size++;
    } public Object pop() throws Exception{ //出栈
    if(size == 0)
    throw new Exception("堆栈已空!");
    Object obj = head.element; //原栈顶数据元素
    head = head.next; //原栈顶结点脱链
    size --;
    return obj;
    } public boolean notEmpty(){ //非空否
    return head != null;
    } public Object getTop(){
    return head.element;
    }

    }
      

  6.   

    第一题就是从键盘上输入数如果输入的数为-100就停止输入,然后用Add从键盘再加一个数进去,从键盘上查找一个数如果找到
    了就把这个数去掉,如果没有找到就输出没有找到,然后把List里的第一个和最后一个数去掉然后判断List是否为空,然后输出
    空还是不空,如果不空就按顺序输出List里面有多少个数是什么!这样清楚了吗?谢谢楼上的,帮我写一下这个Code,最好能用
    4个class,至少一个inheritance,写出来我马上结贴散分,准备过年!!
      

  7.   

    我也是新手,刚接触数据结构,想看Code多学习一下,谢谢楼上的,有什么疑问请回帖!
      

  8.   

    希望能给按9楼的要求给个Code,我好结贴散分,谢谢各位达人