資料結構之棧

2021-09-10 06:02:32 字數 1254 閱讀 9092

棧的思想

棧的核心思想為先進先出

棧的結構體和鍊錶類似,但是有了一些公升級,在節點的基礎上增加了新的結構體stack其中包含著頂指標以及底指標。**注意棧的結構體中兩個指標得到格式為pnode!!!**因為這兩個指標指向的資料型別為node型別的節點!

typedef struct nodenode,*pnode;

typedef struct stackstack,*pstack;

棧的基本操作

init_stack()

棧的初始化思想為,在定義了乙個棧的結構體之後,我們可以得到兩個指標,但是這兩個指標並沒有指向任何乙個結構體,此時並不是乙個完整的結構體,應該先定義乙個類似於鍊錶中的頭節點的node,其中不儲存任何資料,只用來儲存指標。然後使兩個指標指向node即可

void init_stack(pstack ps)

else

}

push()

入棧操作,只需要注意指標的指向即可

void push(pstack ps,int value)
pop()

出棧的注意事項為被彈出的node記得free一下

void pop(pstack ps,int value )

printf("the pop number is %d\n",value);

}

完整的**示例

#include #include #include #define null 0

typedef struct nodenode,*pnode;

typedef struct stackstack,*pstack;

void init_stack();

void push();

void pop();

void show_stack();

int main()

void init_stack(pstack ps)

else

}void push(pstack ps,int value)

void show_stack(pstack ps)

}void pop(pstack ps,int value )

printf("the pop number is %d\n",value);

}

資料結構之棧結構

棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...

資料結構之棧

4.8.2 四則運算表示式求值 程式如下所示 include include include 定義結點型別 typedef struct node node,pnode 定義棧的抽象資料型別 typedef struct stack stack,pstack 函式宣告 對棧進行初始化的函式 void...

資料結構之棧

資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...