模擬實現「棧」資料結構

2021-09-11 08:53:34 字數 1194 閱讀 7660

「棧」是一種資料結構-特殊的線性表。原則是後進先出(lifo)。只允許在固定的一一端進行插入、刪除,稱為「棧頂」,而另一端稱為「棧底」。

「棧」可以用陣列、鍊錶來模擬實現,但是陣列方式更優,以下我們就使用陣列來模擬實現。

stack.h 

#pragma once

#include "commen.h"

//棧--陣列實現

typedef int stdatatype;

typedef struct stack

stack;

void stackinit(stack* ps,int n);//初始化,容量為n

void stackdestory(stack* ps);

void stackpush(stack* ps, stdatatype x);//入棧

void stackpop(stack* ps);//出棧

stdatatype stacktop(stack* ps);//取棧頂元素

int stacksize(stack* ps);//取棧中元素個數

int stackempty(stack* ps);//判斷棧是否為空

void stacktest();//測試

int isvalid(char* str);//判斷括號是否匹配

stack.c

#define _crt_secure_no_warnings 1

#include "commen.h"

#include "stack.h"

void stackinit(stack* ps, int n)

void stackdestory(stack* ps)

void stackpush(stack* ps, stdatatype x)//入棧

ps->_capacity *= 2;

} ps->_a[ps->_top] = x;

ps->_top++;

}void stackpop(stack* ps)//出棧

}stdatatype stacktop(stack* ps)//取棧頂元素

int stacksize(stack* ps)//取棧中元素個數

int stackempty(stack* ps)//判斷棧是否為空

sdlksk,m,m

模擬實現「佇列」資料結構

佇列也是一種特殊的資料結構,原則是先進先出 fifo 只允許在一端插入,稱為 隊尾 在另一端刪除,稱為 隊頭 佇列可以用陣列 鍊錶實現,但是用鍊錶實現更優。以下就是使用鍊錶實現的。queue.h pragma once include commen.h 佇列 單鏈表實現 typedef int qd...

資料結構 陣列模擬實現佇列

佇列是乙個有序列表,可以用陣列或是鍊錶來實現,它遵循先進先出原則 佇列本身是有序列表,若使用陣列的結構來儲存佇列的資料 陣列實現佇列 class arrayqueue 判斷佇列是否滿 滿返回true,沒滿返回false public boolean isfull 判斷佇列是否為空他,頭尾相等為空 空...

資料結構 雜湊表及其模擬實現

直接定址法 hashfunc date a date b a,b為常數 從雜湊衝突的位置,找下乙個空餘位置插入元素。尋找方式有兩種,線性探測和二次探測。直接向後 1查詢。h i h0 i 2 或者h i h0 i 2 de需要的原因,此位置不可以插入元素,也不可設定為em 查詢時遇em就停止了,可能...