課程作業五

2022-03-09 13:48:08 字數 977 閱讀 4566

上次作業我已經將我的乙個類分為了四個類,而且已經進行了**的實現。

git傳送門

在四則運算器的計算算式的值的編寫中,我用到了棧。下面是我所學到的一些知識。

棧是一種特殊的線性表,只能從固定的方向進出,而且棧進出的基本原則是:先進棧的元素後出棧。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指標。

使用棧時,先包含相關的標頭檔案

#include
定義棧

stack《棧的型別》 棧的名字;
棧的標準庫函式

s為棧的名字

s.empty() 如果棧為空返回true,否則返回false

s.size() 返回棧中元素的個數

s.pop() 刪除棧頂元素但不返回其值

s.top() 返回棧頂的元素,但不刪除該元素

s.push() 在棧頂壓入新元素

由於之前c語言的上機課有進行過棧的學習,所以對棧也有了一定的基本了解,在計算器的編碼中也用到了一些棧的知識。但是也遇見過一些非法訪問的錯誤,在這次學習後也會注意這些問題。在學習過程中也接觸了「堆」這個概念,堆是無序的,可以任意的取和插入,而棧不是這樣子的。我覺得堆和棧的區別就在於:乙個是靜態,乙個是動態。堆是在程式執行時自動分配的。使用時要注意釋放記憶體。(我覺得和鍊錶很像)

課程作業五

git鏈結 include stack採用模板類實現,stack物件的預設構造形式 stack stkt stack stkint 乙個存放int的stack容器。stack stkfloat 乙個存放float的stack容器。stack stkstring 乙個存放string的stack容器。...

課程作業五

提供本次作業的github鏈結 對棧的知識學習探索 概念很簡單,棧 stack 是一種後進先出的資料結構。棧的實現 棧是一種後進先出的資料結構,對於stack 我們希望至少要對外提供以下幾個方法 stack 建立乙個空的棧 void push t s 往棧中新增乙個新的元素 t pop 移除並返回最...

課程作業五

本次作業要求將程式寫成.cpp和.h分離的形式。根據設計的類圖進行編碼,搭建主體框架。上一次作業裡已經將類的 歸類,這次將分散的 整理成乙個完整的 體。head 對棧的知識學習探索 我是在四則運算的基礎上進行棧的應用.四則運算裡主要明白前 中 字尾表示式的轉換.四則運算的運用可分為兩類 將中綴表示式...