c++编写一个类,实现简单的栈(用链表结构)
数据的操作按先进后出的顺序。成员函数:voidstack::put(intitem);//将数据item插入到栈中intstack::get();//从栈中取一个数据数据...
数据的操作按先进后出的顺序。
成员函数:
void stack::put(int item);//将数据item插入到栈中
int stack::get();//从栈中取一个数据
数据成员:
一个指向链首的指针
链表结构为:
struct Node{
int a;
Node* next;
};
使用对象的过程:
stack st;
st.put(10);
st.put(12);
st.put(14);
cout<<st.get()<<endl;//输出14,栈中剩下10,12
cout<<st.get()<<endl;//输出12,栈中剩下10 展开
成员函数:
void stack::put(int item);//将数据item插入到栈中
int stack::get();//从栈中取一个数据
数据成员:
一个指向链首的指针
链表结构为:
struct Node{
int a;
Node* next;
};
使用对象的过程:
stack st;
st.put(10);
st.put(12);
st.put(14);
cout<<st.get()<<endl;//输出14,栈中剩下10,12
cout<<st.get()<<endl;//输出12,栈中剩下10 展开
3个回答
展开全部
//stack.h
#include<iostream.h>
struct Node{
int a;
Node* next;
};
class Stack{
public:
Stack(){
head=NULL;
}
void put(int item);
int get();
protected:
Node* head;
};
//-----------------------------------------------------------
//stack.cpp
#include "stack.h"
void Stack::put(int item){
Node* ss=new Node;
ss->a=item;
if(head==NULL){
head=ss;
ss->next=NULL;
}
else{
Node* sEnd=head;
ss->next=sEnd;
head=ss;
}
}
int Stack::get(){
if(head==NULL){
cout<<"the end of stack.\n";
return 0;
}
else{
int aa=head->a;
Node* ss=head;
head=head->next;
delete ss;
return aa;
}
}
//-----------------------------------------------------
//main.cpp
#include "stack.h"
void main(){
Stack st;
st.put(10);
st.put(12);
st.put(14);
cout<<st.get()<<endl;
cout<<st.get()<<endl;
}
#include<iostream.h>
struct Node{
int a;
Node* next;
};
class Stack{
public:
Stack(){
head=NULL;
}
void put(int item);
int get();
protected:
Node* head;
};
//-----------------------------------------------------------
//stack.cpp
#include "stack.h"
void Stack::put(int item){
Node* ss=new Node;
ss->a=item;
if(head==NULL){
head=ss;
ss->next=NULL;
}
else{
Node* sEnd=head;
ss->next=sEnd;
head=ss;
}
}
int Stack::get(){
if(head==NULL){
cout<<"the end of stack.\n";
return 0;
}
else{
int aa=head->a;
Node* ss=head;
head=head->next;
delete ss;
return aa;
}
}
//-----------------------------------------------------
//main.cpp
#include "stack.h"
void main(){
Stack st;
st.put(10);
st.put(12);
st.put(14);
cout<<st.get()<<endl;
cout<<st.get()<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class stack
{
private :
Node *top;
public :
stack();
void put(int val);
int get();
};
stack::stack()
{
top=NULL;
}
void stack::put(int val)
{
Node *newnode=new Node();
newnode->a=val;
newnode->next=top;
top=newnode;
}
int stack::get()
{
if(top==NULL)
return -1;
Node *newnode=new Node();
int num=top->a;
newnode=top->next;
delete top;
top=newnode;
return num;
}
{
private :
Node *top;
public :
stack();
void put(int val);
int get();
};
stack::stack()
{
top=NULL;
}
void stack::put(int val)
{
Node *newnode=new Node();
newnode->a=val;
newnode->next=top;
top=newnode;
}
int stack::get()
{
if(top==NULL)
return -1;
Node *newnode=new Node();
int num=top->a;
newnode=top->next;
delete top;
top=newnode;
return num;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef struct tagNode {
int a;
struct tagNode * next;
} Node;
class stack {
private:
Node * top;
public:
stack() {
top=NULL;
}
void put(int item) {
Node * i = new Node();
i->a = item;
i->next = top;
top = i;
}
int get() {
int result = 0;
Node * old;
if(top != NULL) {
result = top->a;
old = top;
top = top->next;
delete old;
}
//这里栈为空的时候直接返回了0,没有进行其他处理
return result;
}
};
int a;
struct tagNode * next;
} Node;
class stack {
private:
Node * top;
public:
stack() {
top=NULL;
}
void put(int item) {
Node * i = new Node();
i->a = item;
i->next = top;
top = i;
}
int get() {
int result = 0;
Node * old;
if(top != NULL) {
result = top->a;
old = top;
top = top->next;
delete old;
}
//这里栈为空的时候直接返回了0,没有进行其他处理
return result;
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询