棧和佇列的基本操作

2021-10-25 07:30:59 字數 1465 閱讀 3338

資料結構——棧和佇列的基本操作

// 棧的基本操作

#include #include #define true 1

#define false 0

#define ok 1

#define error -1

#define overflow -2

#define stack_init_size 100

#define stackincrement 10

typedef char chartype;

typedef struct

sqstack;

// 順序棧的初始化

sqstack* initstack()

// 判斷順序棧是否為空

int stackempty(sqstack *s)

// 求順序棧的長度

int stacklength(sqstack *s)

// 清空順序棧

int clearstack(sqstack *s)

// 銷毀順序棧

int destorystack(sqstack *s)

return ok;

}// 順序棧進棧

void push(sqstack *s, chartype e)

*s -> top = e;

s -> top++;

}// 順序棧出棧

void pop(sqstack *s)

// 取順序棧棧頂元素

chartype gettop(sqstack *s)

// 輸入

void inputstack(sqstack *s)

}// 列印

void printstack(sqstack *s)

printf("%c", *temp -> top);

}int main(void)

佇列的基本操作

#include #include typedef struct node

node;

typedef struct

queue;

//初始化結點

node *init_node()

//初始化佇列

queue *init_queue()

// 判斷是否為空

int empty(queue *q)

//入隊操作

void push(queue *q, int data)

else

}//出隊操作

int pop(queue *q)

else

return temp;

}//列印佇列元素

void print_queue(queue *q)

printf("\n"); //記得換行

}int main(void)

棧和佇列的基本操作

看歐立奇的 程式設計師面試寶典 的棧和佇列的部分,發現了部分問題。其中棧的部分,不能簡單的用malloc函式來初始化stack,應該呼叫create 函式 而且棧的base應該指向棧的最下面的資料的下乙個位址。全部除錯通過 棧的部分通過單鏈表來實現鏈棧的結構 include using namesp...

棧和佇列的基本操作

一種特殊的的線性表,只允許在固定的一端進行插入和刪除操作。棧被稱作是先進後出的線性表。只允許在一端進行插入資料操作,在另一端刪除資料操作的特殊線性表。具有先進先出的特性。迴圈佇列 簡單了解 隊空 rear front 隊滿 rear 1 maxsize front 初始化 銷毀 增 刪 查 type...

C 中棧和佇列的基本操作

使用標準庫的棧和佇列時,先包含相關的標頭檔案 include include 定義棧如下 stacks 定義佇列如下 queueq 棧提供了如下的操作 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top 返回...