C語言實現棧和佇列

2021-10-06 03:24:34 字數 1873 閱讀 4172

標頭檔案

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...