資料結構順序棧和鏈棧基本操作----c++實現
順序棧:
#include<iostream> using namespace std; #define MaxSize 50 class SeqStack{ private: int data[MaxSize]; int top; public: void initStack(); //初始化棧 void Push(int elem);//入棧 int Pop();//出棧 bool isEmpty();//判斷棧是否為空 int getLength();//得到棧的長度 void visit();//遍歷棧裡的資料 }; void SeqStack::initStack() { for(int i=0;i<MaxSize;i++) data[i]=0; top=-1; } void SeqStack::Push(int elem) { if(top==MaxSize) return; top++; data[top]=elem; } int SeqStack::Pop() { if(top==-1) return 0; int elem= data[top]; top--; return elem; } bool SeqStack::isEmpty() { if(top==-1) return true; else return false; } int SeqStack::getLength() { return top++; } void SeqStack::visit() { while(!isEmpty()) cout<<Pop()<<" "; }
鏈棧:
#include<iostream> using namespace std; struct linkStack{ char data; linkStack *next; }; //鏈棧的初始化 linkStack * initStack() { linkStack *top=new linkStack; top=NULL; return top; } //判斷鏈棧是否為空 bool isEmpty(linkStack *stack) { if(NULL==stack) return true; return false; } //鏈棧入棧 linkStack * push(linkStack *stack,char data) { linkStack *node=new linkStack; node->data=data; node->next=stack; stack=node; return stack; } //鏈棧出棧 linkStack * pop(linkStack *stack) { if(stack!=NULL) { cout<<stack->data; stack=stack->next; }else cout<<"是空棧!"; return stack; } //鏈棧的長度 int getLength(linkStack *stack) { int length=0; if(stack==NULL) return 0; while(stack!=NULL) { length++; stack=stack->next; } return length; } //取出棧頂元素 int getTop(linkStack *stack) { int temp; temp=stack->data; return temp; } int main() { linkStack *stack=initStack(); for(int i=0;i<9;i++) { char c=i+96; stack=push(stack,c); } for(int j=0;j<9;j++) { stack=pop(stack); } return 0; }
相關推薦
棧和佇列的基本操作的實現
1. 實驗目的 熟練掌握棧和佇列的抽象資料型別,能在相應的應用問題中正確選用它們,熟練掌握棧和佇列的實現方法(順序和鏈式),兩種儲存結構和基本操作的實現演算法,注意空和滿的判斷條件及它們的描述方法,掌握迴圈佇列與其它順序結構實現上的不同及解決辦法,熟悉各種佇列的基本操作在迴圈佇列上的實現
資料結構順序棧和鏈棧基本操作----c++實現
順序棧: #include<iostream> using namespace std; #define MaxSize 50 class SeqStack{ private: int
資料結構---------------------------------------順序棧和鏈棧的實現
今天想把這個順序棧實現一下,就翻閱資料整理了一下。 下面分別給出順序棧和鏈棧的相應功能的實現。 1)順序棧的圖示: 下面是程式碼: #include<iostream> #include<algorithm> #include<str
資料結構學習心得——順序棧和鏈棧
棧的定義 棧是限定盡在表尾進行插入或者刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應地,表頭端稱為棧底。不含元素的空表稱為空棧。棧又稱為後進先出的線性表。 和線性表類似,棧也有兩種儲存表示方法。 順序棧,即棧的順序儲存結構是利用一
棧定義及其基本操作,順序棧和鏈棧
棧和佇列是兩種特殊的線性表,它們的邏輯結構和線性表相同,只是其運算規則較線性表有更多的限制,故又稱它們為運算受限的線性表。棧和佇列被廣泛應用於各種程式設計中。棧的定義及基本運算1、棧的定義 棧(Stack)是限制僅在表的一端進行插入和刪除運算的線性表。 (1)通常稱插入、刪除的這一端為棧
資料結構:實驗四棧和佇列的基本操作實現及其應用
一、實驗目的 1,熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2,學會使用棧和佇列解決實際問題。 二、實驗內容 1,自己確定結點的具體資料型別和問題規模: 分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。 分別建立一個順
實驗3:棧和佇列的基本操作實現及其應用——順序佇列和鏈佇列
實驗3:棧和佇列的基本操作實現及其應用一、實驗目的1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、 學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操
實驗3:棧和佇列的基本操作實現及其應用——順序棧和鏈棧
實驗3:棧和佇列的基本操作實現及其應用一、實驗目的1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、 學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操
順序棧和鏈棧(stack)
順序棧和鏈棧(stack) 棧的定義:它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退
資料結構---線性表(鏈棧)
Stack.h:結構定義和函式申明 #ifndef __STACK_H__ #define __STACK_H__ //一些庫函式的標頭檔案包含 #include <string.h> #include <ctype.h> #include <malloc.h&
實驗三:棧和佇列的基本操作實現及其應用——順序棧
一、實驗目的1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、 學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立一個順序佇列和鏈佇列,實
實驗4:棧和佇列的基本操作實現及其應用——鏈棧
一、實驗目的 1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2、 學會使用棧和佇列解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。 分別建
實驗4:棧和佇列的基本操作實現及其應用之《順序佇列》
實驗4:棧和佇列的基本操作實現及其應用之順序佇列 一、實驗目的 1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2、 學會使用棧和佇列解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順
實驗4:棧和佇列的基本操作實現及其應用之《鏈佇列》
實驗4:棧和佇列的基本操作實現及其應用之鏈佇列 一、實驗目的 1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2、 學會使用棧和佇列解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個
C++棧學習——順序棧和鏈棧的區別
C++中棧有順序棧和鏈棧之分,在順序棧中,定義了棧的棧底指標(儲存空間首地址base)、棧頂指標top以及順序儲存空間的大小stacksize(個人感覺這個資料成員是可以不用定義的) //順序棧資料結構C++類宣告(基類) template <t
實驗三、順序棧和鏈棧
一、實驗目的 1、 熟練掌棧的結構特點,掌握棧的順序儲存和鏈式儲存結構和實現。 2、 學會使用棧解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。 三、程式碼 鏈棧
實驗三 順序棧和鏈棧
一、實驗目的 1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2、 學會使用棧和佇列解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。 分別建立一
實驗四:順序棧和鏈棧
#ifndef SeqStack_H #define SeqStack_H const int StackSize=10; template class SeqStack { public: SeqStack(); ~SeqStack(){} void Push(DataType x); //
8.基本數據結構-順序表和鏈表
__main__ 就是 def pytho sel 硬件 居住 back 申請 一.內存 - 計算機的作用:對數據進行存儲和運算。首先我們需要知道我們目前使用的計算機都是二進制的計算機,就以為著計算機只可以存儲和運算二進制的數據。例如下載好的一部電影,該電影可以存儲到
C語言實現棧和佇列(棧和佇列的基本操作)
棧: 棧:棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。 特點:先進後出 stack.h #pragma once #include <stdio.h> #include <