9 14資料結構學習記錄

2021-08-28 03:22:32 字數 1297 閱讀 1294

#include#include#includeusing namespace std;

int main()sqstack;

sqstack st;

int initstack(sqstack &st)//初始化棧

int empty(sqstack &st)

int push(sqstack &st,int x)

int pop(sqstack &st,int &x)

考試時不用這麼複雜的

三行**

st.top=1;//函式初始化

st.date[++st.top]=x;壓棧

x=st.date(top--);出棧

關於棧就那麼多,棧的進出遠離就不複雜了,不細說,鏈棧的操作就是頭插法,沒什麼特別需要強調的。下面再說說佇列。

q.empty()// 如果隊列為空返回true,否則返回false  

q.size() // 返回佇列中元素的個數

q.pop() //刪除佇列首元素但不返回其值

q.front() // 返回隊首元素的值,但不刪除該元素

q.push(x) //在隊尾壓入新元素 ,x為要壓入的元素

q.back() //返回佇列尾元素的值,但不刪除該元素

佇列是可進行插入一端為隊尾,可刪除一端為隊尾,這個概念很簡單。

它的標頭檔案為#include,之前的棧的標頭檔案為#include

隊的結構定義與順序棧其實相差無幾,只是說把top變成了,front和rear兩個指標,加上每次入隊出隊的機制有所改變

棧只有top增增減減,佇列則是頭出尾進;01

2345

6隊空的時候兩個指標指向同乙個地方,也就是說,一定會損失乙個儲存空間。

qu.rear==qu.front//棧空

(qu.rear+1)%maxsize==qu.front

進隊操作

qu.rear=(qu.rear+1)%maxsize;qu.date[qu.rear]=x;/前面已經完成了賦值

qu.front=(qu.front+1)%maxsize;x=qu.date[qu.front];//其實就是指標和資料都後移了

順便一說,stacksta;這種定義是什麼意思終於懂了,其實就是結構體中的某個成員是什麼type;

比如之前看到的mapcont;就是說map這個結構下兩個成員分別為int char

操作時,emmm,可以完成數字配對。比如cont["july"]=7;就把july和7關聯了起來,稱為關聯函式。

資料結構學習記錄(一)

因為學資料結構比較頭大 我們學的是c資料結構,而我早已經把c忘光了 看書也有點難懂,所以去leetcode刷題了。今天開始刷題記錄 因為我實在是不想把這麼多東西存到電腦,那麼乾脆雲乙份吧 這些記錄都比較個人,是做給自己看的。給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 中心索引 的方法。...

資料結構學習記錄 1

1.資料結構是相互之間存在一種或對多種特定關係的資料元素的集合。2.在任何問題中,資料元素都不是孤立存在的,而是在他們之間存在著某種關係,這種資料元素之間的關係叫做結構 3.根據資料元素之間關係的不同特性,通常有4類基本結構 a.集合 結構中的資料元素之間除了 同屬於用乙個集合 的關係外,沒有其他關...

資料結構學習記錄 迷宮設計

迷宮程式設計是第三個實驗,思想是不停的試探,然後標記判斷出路的過程 一般自己習慣把頭檔案全部放在乙個檔案裡名為t11.h include stdio.h include string.h include ctype.h include malloc.h include stdlib.h atoi e...