建立一个链栈,实现栈的压栈和出栈操作。

xiaoxiao2021-02-28  103

 头文件:   #ifndef linkstack_H   #define linkstack_H   struct node   {       int data;       node *next;   };   class linkstack   {   private:       node *top;   public:       linkstack();       ~linkstack(){}       void push(int x);       int pop();       int gettop();       int empty();   };   #endif   子函数:   #include"linkstack.h"   #include<stdlib.h>      linkstack::linkstack()   {       top=NULL;   }      void linkstack::push(int x)   {       node *s;       s=new node;       s->data=x;       s->next=top;       top=s;   }      int linkstack::pop()   {       node *p;       p=new node;       int x;       if(pop==NULL) throw"下溢";       x=top->data;       p=top;       top=top->next;       delete p;       return x;   }      int linkstack::gettop()   {       return top->data;   }      int linkstack::empty()   {       if(top==NULL)           return 1;       else           return 0;   }   主函数:   #include<iostream>   using namespace std;   #include<stdlib.h>   #include"linkstack.h"   void main()   {       linkstack l;       if(l.empty())           cout<<"链栈为空"<<endl;       else           cout<<"链栈非空"<<endl;       cout<<"分别对15和10执行入栈操作"<<endl;       l.push(15);       cout<<"栈顶元素为:"<<l.gettop()<<endl;       l.push(10);       cout<<"栈顶元素为:"<<l.gettop()<<endl;       cout<<"执行一次出栈操作"<<endl;       l.pop();       cout<<"栈顶元素为:"<<l.gettop()<<endl;   }
转载请注明原文地址: https://www.6miu.com/read-2612520.html

最新回复(0)