什麼是資料結構?其實我也不是很了解,剛學,感覺有總結的價值,所以才發布這篇文章。資料結構可以分很多種類,比如說string,queue(佇列),stack(棧)都能算。
其實說呢,要是自己寫個東西也不難。
下面的話是我做了乙個簡單的stack程式,自帶了清空。?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
class stack
void pop()
void clear()
sum=0;
}int top()
bool empty()
int size()
};這個網頁有點問題,看著就行了?1
//上面是棧,有操作top(),size(),empty(),clear(),push(),pop()
其實只要你創造乙個容器,還創造了它的各種操作方式,我認為就可以叫資料結構(個人理解)
概念現在我們說一下物理儲存結構和邏輯結構
first:物理儲存結構:
就是像我的那個stack,就是物理儲存結構。
電腦容器。
second:邏輯結構:
自己想的。
想出來的。
例子下來我們可以看看乙個例子,有關表示式:
①中綴表示式轉字尾表示式
我們平時生活中會有很多算式:就像什麼1+1的,5+5的,還有各種加減乘除。那麼我們可已把它轉換成字尾表示式。字尾表示式是一種比較一算的式子。
我們先來看第乙個例子:
首先說明下,『(』優先順序是1,『+,-』是2,『*,/』是3,『)』是4
5+10*50/(2+2)
先讀入了5
輸出:5
棧:再讀入加號,存入棧
輸出:5
棧:+讀入10,輸出10
輸出:5 10
棧:+讀入*
現在棧裡有2個運算符號。用top和進來的比較,*優先順序更高,壓棧。
輸出:5 10
棧:+*
讀入50
輸出:5 10
棧:+ *
讀入/比較,* =/,但是更早進入,輸出
連著輸出+
壓棧/讀入(
壓棧(因為有(所以不輸出
輸出:5 10 50 * +
棧: (/
讀入2輸出2
輸出:5 10 50 * + 2
棧:(/
讀入+,壓棧,因為有 ( 不做輸出運算。
輸出:5 10 50 * + 2
棧:(/+
讀入2,輸出
輸出:5 10 50 * + 2 2
棧:(/+
讀入)!!
一見到),輸出所有的在(之前的符號(『(』不輸)
輸出+輸出/
輸出:5 10 50 * + 2 2 + /
棧:輸出結果就是:5 10 50 * + 2 2 + /
那麼怎麼去計算呢
???.png
很簡單:因為我們的字尾表示式有個特性:每兩個數一計算,就這麼算。
依然是例子:
5 10 50 * + 2 2 + /
提取5存:5
提取10
存:5 10
提取50
存:5 10 50
提取*棧內提取50,pop
棧內提取10,pop
10*50=500
壓棧棧:10 500
提取+棧內提取10,500(都pop)
10+500=510
壓棧棧:510
提取2,壓棧
棧:510 2
提取2,壓棧
棧:510 2 2
提取+,提取2,2(pop)
2+2=4
壓棧棧:510 4
提取/,提取510 4
510/4=
你的答案是:
或127.5
為什麼有兩個答案呢
因為你的資料結構不同,整形會出現127
而double會出現127.5
資料結構之邏輯結構與物理結構(儲存結構)
邏輯結構 邏輯結構分為四種型別 集合結構,線性結構,樹形結構,圖形結構。所謂集合結構 表面意思,沒有什麼深刻意義,就是資料元素同屬乙個集合,單個資料元素之間沒有任何關係。如下圖所示。線性結構類似於線性關係,也就是說,線性結構中的資料元素之間是一對一的關係。注意 重點在一對一。如下圖所示。樹形結構 樹...
ORACLE 資料儲存結構之物理儲存結構
資料檔案 資料檔案是用於儲存使用者應用程式資料和oracle系統內部資料的檔案,這些檔案在作業系統中就是普通的作業系統檔案,oracle在建立表空間的同時會建立資料檔案。oracle資料庫在邏輯上由表空間組成,每個表空間可以包含乙個或多個資料檔案,乙個資料檔案只能隸屬於乙個表空間。控制檔案 控制檔案...
資料結構物理儲存方式
1 順序儲存方式 bai順序儲存方式就是在一塊連續的儲存區域乙個接著乙個的存放資料,把邏輯上相連的結點儲存在物理位置上相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接掛安息來體現。順序儲存方式也稱為順序儲存結構,一般採用陣列或者結構陣列來描述。2 鏈結儲存方法 它比較靈活,其不要求邏輯上相鄰的結點...