堆疊和佇列的資料結構和相關操作總結

2021-07-22 16:34:22 字數 1140 閱讀 1145

一、棧的操作

1、棧結構的順序儲存定義:

typedef struct sqstack;

入棧操作:

#define ok 1;

#define error 0;

#define maxsize 20;

int push(sqstack *s, int e)

出棧操作;

int pop(sqstack *s, int *e)

兩個棧共享空間(即用兩個top指標且共用乙個陣列空間)

typedef struct sqdoublestack;
其餘操作類似,只需判別top1和top2是否重疊即可

2、棧的鏈式儲存結構

typedef struct stacknode*linkptr; 

typedef struct linkstack;

入棧

nt push(linkstack *s, int e)

二、迴圈佇列的操作

迴圈佇列是儲存空間可以從後面的位置滿了之後,可以迴圈儲存到前面的空位置的佇列。因此就需要有兩個指標front和rear來指向頭和尾部。

1、順序儲存結構定義:

//迴圈佇列的順序儲存結構

typedef struct sqqueue;

初始化:

#define ok 1;

#define error 0;

#define maxsize 20;

//初始化佇列

int iniqueue(sqqueue *q)

2、鏈式佇列結構定義

typedef struct qnode*qptr; 

typedef struct linkqueue;

入佇列:

int enqueue(linkqueue *q, int e)

資料結構 堆疊和佇列

在資料結構中,有些簡單的線性結構是非常常用的,比如說堆疊可以用於實現函式的呼叫,佇列可以處理一些需要排隊的問題,下面就簡單介紹一下這兩種資料結構。一 堆疊 堆疊是一種特殊的資料結構,特點是filo first in,last out 而且處理的元素也只可以在棧頂這一端。下面給出堆疊常用介面,例如進棧...

資料結構 堆疊和佇列

堆疊和佇列都是特殊的線性表,線性表 堆疊和佇列三者的資料元素以及資料元素之間的邏輯關係完全相同。差別 線性表的插入和刪除操作不受任何限制,而堆疊只能在棧頂插入和刪除,佇列只能在隊尾插入,在對頭刪除。順序表的鏈式表示 堆疊有兩端,插入元素和刪除元素的一端為棧頂,另一端為棧底。對於鏈式堆疊來說,顯然,吧...

資料結構 堆疊和佇列

主要是用於實現堆疊資料結構的儲存方式。先進後出 push pop 使用linkedlist模擬堆疊的資料結構儲存方式 class stacklist 進棧 public void add object o 彈棧 把元素刪除並返回。public object pop 獲取元素個數 public int...