1. 程式人生 > >資料結構實驗二鏈棧

資料結構實驗二鏈棧

#include<iostream.h>
#include<stdlib.h>
struct Node
{
int data;
Node *next;//*結構體指標*//
};
class Stack
{private:static int count;
Node *top;


public:
Stack(){top=NULL;}
void Insert(int data){
Node *s; s=(Node*)malloc(sizeof(Node));s->data=data;s->next=top;top=s;count++;}
int GetTop(){if(top==NULL)return 0;else return top->data;}
int Pop(){if(top==NULL)return 0;
else{Node *p;int x;x=top->data;p=top;top=top->next;delete p;return x;}}
void Show(){for(int i=0;i<=count-1;i++){
cout<<top->data<<" ";top=top->next;};}
};
int Stack::count=0;
int main()
{Stack S;void menu();
int  i;
do{menu();cout<<"Please enter your choice:";cin>>i;
switch(i)
{
case 1:int a;cout<<"Please enter a number:";cin>>a;S.Insert(a);break;
case 2:int b;b=S.GetTop();if(b==0)cout<<"棧空!"<<endl;else cout<<"棧頂:"<<S.GetTop()<<endl;break;
case 4:break;
case 3:int c;c=S.Pop();if(c==0)cout<<"棧空!"<<endl;else cout<<"彈出後的棧頂為:"<<S.Pop()<<endl;break;
case 5:S.Show();cout<<endl;break;
default:cout<<"enetr error!"<<endl;break;
}}while(i!=4);
return 0;
}void menu(){  
cout<<"請選擇下列功能:"<<endl;
cout<<"1--入棧;"<<endl;
    cout<<"2--取棧頂;"<<endl;
cout<<"3--彈棧"<<endl;
    cout<<"4--退出;"<<endl;
    cout<<"5--顯示後刪除所有資料."<<endl;}

相關推薦

資料結構實驗

#include<iostream.h>#include<stdlib.h>struct Node{int data;Node *next;//*結構體指標*//};class Stack{private:static int count;Node *

資料結構實驗】順序的建立、入和出

版權申明: 實驗二 順序棧的建立、入棧和出棧 實驗目的: 掌握棧的建立、入棧和出棧操作;理解順序棧在入棧和出棧時對Top指標的移動。 實驗內容: 1. 通過結構體宣告線性棧; 2. 在初始化操作

信管1172潘連香資料結構實驗1

實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。 分別建立一個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。 一、順序棧的定義與實現 #ifdef SeqStack_H      

資料結構實驗---叉樹的遍歷

  #include<stdio.h> #include <iostream> #include<string.h> #include<stack>//採用世界先進,國際一流的棧容器,方便省事不除錯 #include<

資料結構實驗---叉排序樹的建立

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; typ

資料結構知識整理 -

主要內容 棧的定義 鏈棧的儲存結構 鏈棧的各項操作 初始化 入棧 出棧 取棧頂元素   棧的定義 棧和佇列是兩種重要的線性結構,與一般線性表不同,它們是操作受限的特殊線性表,主要用於輔助其他資料結構的操作和處理,基本不用於儲存資

資料結構的應用舉例

棧(FILO,先進先出),作為操作受限的特殊線性表,其儲存結構與操作演算法與一般線性表不相同,這裡做一個專門討論。由於棧作為操作受限的特殊線性表,因此線性表的儲存結構對棧也適用,只是操作不同。棧有兩種儲存結構:順序棧和鏈棧。棧有棧頂(TOP)和棧底(base)。對於靜態順序棧

資料結構-實驗式儲存結構的基本操作

廣州大學學生實驗報告 開課實驗室:電腦科學與工程實驗(電子樓417) 2018年5月09日 學院 電腦科學與教育軟體學院 年級、專業、班 網路161 姓名

C語言實現資料結構中的

實現方式一# include <stdio.h># include <stdlib.h>typedef char NodeData;//鏈棧typedef struct Node

資料結構實驗三——順序

#include <stdio.h> #include <stdlib.h> #define M 10 #define N 5 int flag=0; typedef struct SeqStack { char *top; char

資料結構實驗十 利用實現算術表示式的求值

[問題描述] 利用棧實現算術表示式的求值。可以簡單一些,假設表示式中含有一位整數,以及+、-、*、/、(、)。但不受此限制。(難易程度:中) [實驗目的] 1、掌握棧的應用。 2、掌握算符優先表示式求值的演算法。 3、掌握字串處理和數值的轉換。 [

重學資料結構

@[Toc] # 1、棧的定義和特點 棧(Stack)又稱堆疊, 是限制在表的一端進行插入和刪除運算的線性表。 如果要拿一個東西對比,羽毛球筒比較合適。 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200826204653672.png?#pic_

資料結構實驗與佇列:一般算術表示式轉換成字尾式(SDUT 2132)

題目連結 #include <bits/stdc++.h> using namespace std; typedef long long ll; int ok(char ch, char sh) { if(sh == '(')return 1; if((ch ==

資料結構實驗與佇列六:下一較大值()(SDUT 3333)

#include <bits/stdc++.h> using namespace std; int a[1000006]; int b[1000006]; int sta[100006]; int main() { int t,n,i,j,top; while(~sc

資料結構實驗3:C++實現順序類與

                          

資料結構實驗與佇列五:下一較大值(一,

資料結構實驗之棧與佇列五:下一較大值(一,二) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 對於包含n(1<=n<=1000)個整數的序列,對於序

資料結構實驗與佇列六:下一較大值()(因為資料量大所以用來操作)

資料結構實驗之棧與佇列六:下一較大值(二) Time Limit: 150 ms Memory Limit: 8000 KiB Problem Description 對於包含n(1<=n<=100000)個整數的序列,對於序列中的每一元素,在序列中查詢

資料結構實驗與佇列六:下一較大值(

Time Limit: 150 ms Memory Limit: 8000 KiB Problem Description 對於包含n(1<=n<=100000)個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第一個大於它的值,如果找到,輸出所找到的

【OJ.2132】資料結構實驗與佇列:一般算術表示式轉換成字尾式

                            資料結構實驗之棧與佇列二:一般算術表示式轉換成字尾式                              Time Limit: 1000 ms                                 

資料結構實驗與佇列:一般算術表示式轉換成字尾式 sdut-oj

#include <stdio.h> #include <stdlib.h> #define STACK_INIT_SIZE 100 #define STACKINCREMENT 100 typedef struct{     char *base;