資料結構 棧跟佇列基礎部分

2022-05-10 19:42:13 字數 2170 閱讀 5096

定義:棧是一種只能在一端進行插入或刪除操作的線性表。

特點:先進後出(first in,last out--filo)

棧的實現:

int stack[maxsize];

int top = -1

元素入棧:

stack[++top]  =  值1;  // top先自增1,再賦值值1

元素出棧:

值2 = stack[top--];  // 先取top所指的值2, top再減1

棧空:top == -1為真,則棧空

棧滿:top == mansize - 1 為真,則棧滿

建立帶頭結點鍊錶:

lnode *head = (lnode*) malloc(sizeof(lnode));

head->next = null;

lnode *top = null;

元素a入棧:

連續多個元素入棧(在頭結點處插入):

元素c出棧:

棧空:head->next = null 為真,則棧空;

棧滿:只要有足夠的記憶體,棧就不會滿。

定義:佇列是一種插入元素只能在一端能進,刪除元素只能在另一端進行的線性表。

特點:先進先出(first in,first out--filo)

實現隊:

int queue[maxsize];

int front = 0,rear = 0;

環狀入隊:

環狀出隊:

rear = (front + 1)%maxsize;

x = queue[++front];

環狀對空:

front == rear為真

環狀隊滿:

front == (rear + 1) % maxsize為真

入隊d節點(rear指標所指的節點後面插入新節點,讓rear指標指向新節點d):

rear->next = null;

rear->data = 'd';

rear->next = p->next;

p->next = rear;

出隊(刪除第乙個資料節點):

對空:頭結點的next指標為null;

隊滿:只要有足夠的記憶體,隊就不會滿。

資料結構基礎 棧和佇列

棧 stack 是限定僅在表尾進行出入和刪除操作的線性表。後進先出,last in first out 棧頂 top 棧底 bottom 空棧 top 1 棧是一種特殊的線性表,插入和刪除操作只能在表尾進行 top 插入 push,進棧 刪除 pop,出棧 data 同線性表,元素具有相同的型別,相...

資料結構基礎 棧和佇列

特性 後進先出 from queue import lifoqueue lq lifoqueue maxsize 0 棧寫入資料 lq.put 0 lq.put 1 lq.put 2 刪除隊尾資料,並返回該資料 lq.get 輸出佇列所有資料 print lq.queue 輸出 0,1,2 0,1 ...

資料結構 棧 佇列

二 佇列 注 鏈式儲存 定義鍊錶元素所儲存的資料型別 以int為例 typedef int elemtype 定義棧的結點結構及結點指標型別 typedef struct stacknode stacknode,stacknodeptr 定義指向棧的結構 typedef struct linksta...