棧和佇列的基本實現

2021-10-02 16:34:18 字數 1311 閱讀 5561

這篇部落格主要說一下棧和佇列的主要實現,是以c語言完成的,雖然可能用到的機會很少,但是還是了解一下比較好。話不多說,進入正題:

棧的實現:

#define defstacksize 100

void

checkcapacity

(stack* ps)

}void

stackinit

(stack* ps)

void

stackpush

(stack* ps, stdatatype x)

void

stackpop

(stack* ps)

ps->size--;}

stdatatype stacktop

(stack* ps)

return ps->array[ps->size -1]

;}intstackempty

(stack* ps)

intstacksize

(stack* ps)

void

stackdestory

(stack* ps)

}

上面**就是乙個很簡單的棧的實現,可能應用的不是很多。

堆的實現:

queuenode *

buyqueuenode

(qudatatype x)

void

queueinit

(queue* q)

void

queuepush

(queue* q, qudatatype x)

else

}void

queuepop

(queue* q)

queuenode* tmp = q->_front->_next;

free

(q->_front)

;q->_front = tmp;

}qudatatype queuefront

(queue* q)

qudatatype queueback

(queue* q)

intqueueempty

(queue* q)

intqueuesize

(queue* q)

return count;

}void

queuedestory

(queue* q)

while

(q->_front)

}

上面就是乙個很簡單的堆的實現。這篇部落格有點小水,hhh。希望能給大家帶來幫助。就這個樣子。

棧和佇列(基本實現)

1 定義 棧 stack 是一種常用的重要資料結構 線性表 它只允許在棧頂 top 進行刪除,插入,由於其具有後進先出的特性,又被叫做後進先出線性表。2.常用 儲存方式 1.順序儲存方式 2.鏈式儲存方式 順序棧 是指用順序儲存方式儲存的棧,絕大多數情況下是用陣列來進行儲存。這種儲存方式會由乙個ma...

棧和佇列的基本運算實現

編寫乙個程式exp3 6.cpp,求解皇后問題 在n n的方格棋盤上,放置n個皇后,要求每個皇后不同行 不同列 不同左右對角線。要求 1 皇后的個數n由使用者輸入,其值不能超過20,輸出所有的解。2 採用類似於棧求解迷宮問題的方法。include include include include de...

棧和佇列之鏈棧的基本實現

將鏈棧的頭部作為棧頂就很方便了,而且不必設定頭結點,每次插入都是將結點設定為棧頂元素,每次刪除都是將棧頂元素刪除。具體實現如下 建立乙個空鏈棧 void initlinkstack linkstack s 與其他鍊錶不一樣的是,這裡不需要建立乙個頭結點 入棧 void push linkstack ...