⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lstack.cpp

📁 利用链表实现棧
💻 CPP
字号:

#include "string.h"
#include <iostream>
using namespace std;

struct lnode{
	char data;
	struct lnode *next;
};


class Lstack 
{
public:
     Lstack();                  //构造函数
	~Lstack();                  //析构函数  
	void push(char);            //压棧
	void pop(char);             //出棧
	void print();               //输出棧中元素
	void length(void);          //计算棧中元素的个数
	void clean(void);            //清空棧
private:
	lnode *top;
};

Lstack::Lstack()
{
  top=new lnode;           //初始化必需分配存储空间
  top=NULL;
}

Lstack::~Lstack()
{
	clean();
}



void Lstack::push(char e)
{
  lnode *q;
  q=new lnode;       //分配存储空间
 
  q->data=e;
  q->next=top;
  top=q;
  
}

void Lstack::pop(char e)
{
 
   if(top!=NULL)
   {
     e=top->data;
     top=top->next;
     cout<<e<<endl;
   }
 else
     cout<<"this is an empty  stack!!"<<endl;
}

void Lstack::print()
{
    lnode *q;
	q=top;
    if(q==NULL)
	{
       cout<<"this is an empty stack !"<<endl;
	}
    while(q)
	{
       cout<<q->data<<endl;
       q=q->next;
	}

}

void Lstack::length(void)
{
	lnode *q=top;
	int i=0;
	while(q)
	{
       i++;
	   q=q->next;
	}
	cout<<"棧中元素个数为:"<<i<<endl;
}

void Lstack::clean(void)
{
	lnode *q;
	if(top==NULL)
	{
	    cout<<"棧原为空!不必清空!"<<endl;

	}
   while(top!=NULL)
   {
	   q=top;
	   top=top->next;
	   delete q;
   }
}



int main()
{
    char e;
    int d;
	Lstack L;
	Lstack *b=NULL;
	
    while(1)
	{
        cout<< "\n1.进栈";
        cout<<"\n2.退栈";
        cout<<"\n3.打印栈";
        cout<<"\n4.清空";
		cout<<"\n5.计算棧长度";
        cout<<"\n0.退出"<<endl;
        cout<<"请输入选择:";
        cin>>d;
    switch(d)
	{
        case 1:{
            cout<<"input :";
            cin>>e;
            L.push(e);break;
			   }
        case 2:{
           L.pop(e);break;
			   }
        case 3:{
           L.print();break;
			   }
        case 4:
			{
		   L.clean();break;
			}
		case 5:
			{
				L.length();break;
			}
        case 0:{
	       return 0;
			   }
 
        default:{
	        cout<<"Error!"<<endl;break;
				}
	}
}

	return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -