棧基本知識點及基本運算的實現

2021-08-31 01:28:01 字數 1102 閱讀 3379

什麼是棧:

棧是一種只能在一端插入或刪除的線性表。在表中,允許進行插入或刪除的一端叫做棧頂。(ps:我覺得棧就是乙個陣列,棧頂就是下標)表的另一端稱為棧底,當棧中沒有元素時稱為空棧,棧的插入稱為入棧或進戰,棧中資料元素的刪除稱為出棧或退棧。

棧的特點:

後進先出(last in first out ),就是說後進的資料元素先出棧。每次進棧的資料元素都放在原來棧頂元素之前成為新的棧頂元素,每次出棧的資料元素都是當前棧頂元素。

棧的基本形式

adk stack

資料物件;

棧頂指標;

棧空條件;

s->top==-1

棧滿條件:

s->top==maxsize-1

元素的進棧操作

先將棧頂指標加一,然後將元素放在棧頂指標處

元素出棧操作

先將棧頂元素取出,然後棧頂指標減一

棧的基本運算的實現

建立棧void instack(sqstack* &s)

s=(sqstack*)malloc(sizeof(sqstack));

s->top=-1;

銷毀棧void destorystack(sqstack* &s)

free(s);

判斷棧是否為空

bool stackempty(sqstack* &s)

return (s->top==-1);

進棧bool push(sqstack* &s,int e)

s->top++;

s->data[s->top]=e;

return true;

出棧bool pop(sqstack* &s,int e)

if(s->top==-1)

return false;

e=s->data[s->top];

s->top--;

return true;

取棧頂元素

bool gettop(sqstack* &s,int e)

if(s->top==-1)

return false;

e=s->data[s->top];

s->top--;

return true;

基本知識點

1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...

基本知識點

dram 動態隨機訪問儲存器 dynamic random access memory 隨機訪問的意思是,訪問任何乙個記憶體單元的速度和它的位置 位址 無關,讀寫位址0x00001和0xffff0所需要的事件是一樣的。rom 唯讀儲存器 read only memory 它的內容是預先寫入的,掉電也...

PHP基本知識點

1.http協議中幾個狀態碼的含義 503 500 401 200 301 302。http狀態碼 1 請求收到,繼續處理 2 操作成功收到,分析 接受 3 完成此請求必須進一步處理 4 請求包含乙個錯誤語法或不能完成 5 伺服器執行乙個完全有效請求失敗 500 伺服器產生內部錯誤 501 伺服器不...