定義:棧是一種只能在一端進行插入或刪除操作的線性表。
特點:先進後出(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...