這篇部落格主要說一下棧和佇列的主要實現,是以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 ...