標頭檔案
stack.h
#pragma once
#include
#include
#include
typedef
int stdatatype;
typedef
struct stack
stack;
// 初始化棧
void
stackinit
(stack* pst)
// 入棧
void
stackpush
(stack* pst, stdatatype data)
pst->_a[pst->_top]
= data;
++pst->_top;
}// 出棧
void
stackpop
(stack* pst)
// 獲取棧頂元素
stdatatype stacktop
(stack* pst)
// 獲取棧中有效元素個數
intstacksize
(stack* pst)
// 檢測棧是否為空,如果為空返回非零結果,如果不為空返回0
intstackempty
(stack* pst)
// 銷毀棧
void
stackdestroy
(stack* pst)
queue.h
typedef
int qdatatype;
typedef
struct queuenode
queuenode;
typedef
struct queue
queue;
// 初始化佇列
void
queueinit
(queue* q)
// 隊尾入佇列
void
queuepush
(queue* q, qdatatype data)
else
}// 隊頭出佇列
void
queuepop
(queue* q)
else
}// 獲取佇列頭部元素
qdatatype queuefront
(queue* q)
// 獲取佇列隊尾元素
qdatatype queueback
(queue* q)
// 獲取佇列中有效元素個數
intqueuesize
(queue* q)
return n;
}// 檢測佇列是否為空,如果為空返回非零結果,如果非空返回0
intqueueempty
(queue* q)
// 銷毀佇列
void
queuedestroy
(queue* q)
q->_front = q->_rear=
null
;}
原始檔
test.c
#include
"stack.h"
#include
"queue.h"
void
teststack()
printf
("\n");
stackdestroy
(&st);}
void
testqueue()
printf
("\n");
queuedestroy
(&q);}
intmain()
C語言實現,順序佇列,迴圈佇列,和棧!
佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元...
棧,佇列的C語言實現
棧的c語言實現 佇列的c語言實現 棧 後進先出 允許插入和刪除的一端叫棧頂top 不允許的一端叫棧底bottom 主要操作 進棧 出棧 判斷棧滿和棧空 有兩個現成的函式 int push int s,int x,int ptop int pop int s,int py,int ptop 直接拿過來...
陣列 鍊錶 佇列和棧 佇列,C語言實現
佇列,顧名思義就是很多個資料在排隊。既然是排隊,那就不能從最前面或者中間插進去,新來的資料只能排在隊伍的最後。另外,我們另外規定只有隊伍最前面的資料才能出去。當然,其實也只有隊伍最前面的資料能被外界檢視。能滿足這種功能的資料結構稱之為佇列。我們可以用陣列 鍊錶實現佇列。這裡用陣列實現簡單佇列。申請1...