1. 程式人生 > >資料結構——C++棧

資料結構——C++棧

// 資料結構c++棧模板.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include<iostream>  
using namespace std;  
const int MAX=5;     //假定棧中最多儲存5個數據  
//定義名為stack的類,其具有棧功能  
class stack {  
     //資料成員  
     float num[MAX]; //存放棧資料的陣列  
     int top;          //指示棧頂位置的變數  
 public:  
     //成員函式  
     void init(void) { top=0; }    //初始化函式  
     void push(float x)          //入棧函式  
     {  
         if (top==MAX){  
             cout<<"Stack is full !"<<endl;  
             return;  
         };  
         num[top]=x;  
         top++;  
     }  
     float pop(void)          //出棧函式  
     {  
         top--;  
         if (top<0){  
         cout<<"Stack is underflow !"<<endl;  
         return 0;  
         };  
         return num[top];  
     }  
 };  
 //以下是main()函式,其用stack類建立棧物件,並使用了這些物件  
void main()  
 {  
     //宣告變數和物件  
     int i;  
     float x;  
     stack a,b;    //宣告(建立)棧物件  
     //以下對棧物件初始化  
     a.init();  
     b.init();  
     //以下利用迴圈和push()成員函式將2,4,6,8,10依次入a棧物件  
     for (i=1; i<=MAX; i++)  
         a.push(2*i);  
     //以下利用迴圈和pop()成員函式依次彈出a棧中的資料並顯示  
     for (i=1; i<=MAX; i++)  
        cout<<a.pop()<<" ";  
     cout<<endl;  
     //以下利用迴圈和push()成員函式將鍵盤輸入的資料依次入b棧  
     cout<<"Please input five numbers."<<endl;  
     for (i=1; i<=MAX; i++) {  
          cin>>x;  
          b.push(x);  
     }   
     //以下利用迴圈和pop()成員函式依次彈出b棧中的資料並顯示  
     for (i=1; i<=MAX; i++)  
        cout<<b.pop()<<" ";  
 }   

相關推薦

資料結構——C++

// 資料結構c++棧模板.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include<iostream> using namespace std; const int MAX=5; //假定棧中最

資料結構(Stack)的關於C語言的實現

C語言實現棧共有兩種方法,一種是使用陣列的包含最大Size的棧,另外一種是運用連結串列的方法實現 關於陣列方法實現的程式碼如下: #include<stdio.h> /** * Your MinStack struct will be instantiate

資料結構C/C++程式碼實現 連結串列基本操作

實現棧連結串列基本操作: #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct linknode {     ElemType data;     stru

資料結構C/C++程式碼實現 順序表基本操作

順序表棧基本操作的實現  原始碼: #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; #define MAXSIZE 100 //#d

資料結構(C語言版 嚴蔚敏著)——和佇列

棧的定義: · 書本定義:棧是一個後進先出的線性表,它只要求只在表尾 進行刪除和插入操作。 · 通俗定義:棧就是一個特殊的線性表(順序表,連結串列),操作上有一些特殊性:     -棧的元素必須“後進先出”。     -棧的操作只能在這個線性表的表尾進行。    

資料結構的順序儲存結構 C語言實現

棧(stack),是一種線性儲存結構,它有以下幾個特點: 棧中資料是按照"後進先出(LIFO, Last In First Out)"方式進出棧的。 向棧中新增/刪除資料時,只能從棧頂進行操作。 基本操作 initStack(&S) destroySt

C語言_資料結構_

#include <iostream> #include <algorithm> using namespace std; typedef int Status; #define stackElemType int #define STACK_IN

資料結構——入,出,佇列相關操作(C語言實現)

閱讀過程之中可能會花費比較多的時間:建議直接翻到最後,有完整的程式碼可以使用 程式準備工作 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include<proc

C資料結構-鏈

鏈棧 鏈棧的設計依賴於筆者之前設計的連結串列,詳情請看《C資料結構-線性表之單鏈表 》。 #ifndef LINKEDSTACK_H #define LINKEDSTACK_H #include "LinkedList.h" t

C資料結構-順序

順序棧 順序棧的實現依賴於筆者之前實現的順序表,詳情請看《C資料結構-線性表之順序表》。 #ifndef SEQSTACK #define SEQSTACK #include "SeqList.h" typedef seq_list seq_

資料結構-C語言實現線性

#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100//儲存空間初始化分配量 #define STACKINCREAMENT 10//儲存空間分配增量 #defi

C語言資料結構 實現進位制轉化

直接上程式碼,思路看註釋; /*棧實現進位制轉化 *十進位制最大轉化為36進位制用10(A)-35(Z)表示 */ #include<stdio.h> #include<malloc.h> #include<stdlib.h> #

資料結構 C描述】使用順序編制一個滿足下列要求的程式:對於輸入的任意一個非負十進位制數,列印輸出與其等值的二進位制數。

【資料結構 C描述】使用順序棧編制一個滿足下列要求的程式:對於輸入的任意一個非負十進位制數,列印輸出與其等值的二進位制數。 //main.cpp #include <iostream> #include <malloc.h> #include <stdl

C++_STL_資料結構_stack_

棧(statck)這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的(First In Last Out, FILO)。棧只有一個出口,允許新增元素(只能在棧頂上增加)、移出元素(只能移出棧

資料結構--c實現的出

 一,只有棧頂的情況。 1,首先定義連結串列單節點: typedef struct node {     ElementType data;     struct node *next }StackNode ,*LinkStack; 2.

資料結構的應用--數制轉換(c++)

標頭檔案: #pragma once #include <iostream> #include <assert.h> using namespace std; template<class Type> class SeqStack

資料結構中用實現表示式求值(c語言實現)

/* 該程式完成了個位數的各類表示式求值 運用了資料結構中的棧及對棧操作的各類函式,操作全用指標完成 如輸入 2+3*(3+3*1)#  輸出結果為 20 經測試個位數的表示式運算結果均正確 */ #include<stdio.h> #include<std

簡單資料結構----鏈C++實現

/* * File name : LinkList.cpp * Function : 鏈棧的C++實現 * Created on : 2016年4月22日 * Author : [email protected] * Copyright : 歡迎大

C/C++ 資料結構的建立

順序棧 #include "stdafx.h" #include<iostream> using namespace std; typedef int SElemType; typedef struct{ SElemType *bas

C資料結構的應用:括號匹配和簡單計算器

堆疊是一種資料項按序排列的資料結構,只能在其一端進行插入和刪除。括號匹配和表示式求值是堆疊的兩個典型應用。1.找到無法匹配的左右括號,輸出原字串,失配的左括號下打&,右括號下打? 輸入包括多組資料,每組資料一行,包含一個字串,只包含左右括號和大小寫字母,字元長度不超過