| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 768 人关注过本帖
标题:栈中的push函数求助
只看楼主 加入收藏
xiehaishui
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:3
注 册:2009-7-2
收藏
 问题点数:0 回复次数:1 
栈中的push函数求助
#include <assert.h>
#include <iostream.h>
#define NULL 0
template <class Type> class Stack;

template <class Type> class StackNode{
  friend class Stack<Type>;
  private:
    Type data;
    StackNode<Type>* link;
    StackNode(Type d=0,StackNode<Type>* l=NULL):data(d),link(l){}
  };




template <class Type> class Stack{
  public:
    Stack():top(NULL){}
    ~Stack();
    void Push(const Type& item);
    Type Pop();
    Type GetTop();
    void MakeEmpty(){top=NULL;}
    int  IsEmpty() const {return top==NULL;}
  private:
    StackNode<Type>* top;
  }

  template <class Type> void Stack<Type>::~Stack(){
    StackNode<Type>* p;
    while(top!=NULL){p=top;top=top->link;delete p;}
    }

  template <class Type> void Stack<Type>::Push(const Type& item){
    top=new StackNode<Type>(item,top);
    }

  template <class Type> Type Stack<Type>::Pop(){
    assert(!IsEmpty());
    StackNode<Type>* p=top;
    Type retvalue=p->data;
    top=top->link;
    delete p;
    return retvalue;
    }

  template <class Type> Type Stack<Type>::GetTop(){
    assert(!IsEmpty());
    return top->data;
    }

void main(){
  Stack<int> st;
  for(int i=0;i<10;i++)st.Push(i);
  while(!st.IsEmpty()){
    cout<<st.Pop()<<endl;
    }
  }
在push函数中top=new StackNode<Type>(item,top);那么在StackNode(Type d=0,StackNode<Type>* l=NULL):data(d),link(l){}中式如何实现
进栈的



搜索更多相关主题的帖子: 函数 push 
2009-10-16 20:30
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

 StackNode<Type>(Type item,  StackNode<Type> * top) : data(item), link(top)
{
}

—>〉Sun〈<—
2009-10-23 01:24
快速回复:栈中的push函数求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019336 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved