數據結構之線性表小結

以下都是用自己的話來總結的,可能和專業術語有偏差(大鳥勿噴),留給自己複習使用啦

一、數據結構:其實就是在你編寫一個程序之前,你所用到的數據想用怎樣方式存起來:固定長度的靜態存儲(順序存儲,一般用數組)、變長的動態存儲(鏈式存儲,一般用指針),除此之外,數據之間也會有一定的聯繫,方便互相找到彼此(邏輯結構,常用的有:集合,線性結構,樹結構,圖結構

用課本上的話來說就是:數據結構分爲邏輯結構(4種)和存儲結構(2種)

二、算法:就是對步驟的一種描述,就像我們說的解題思路一樣,你可以把它用文字說出來,先怎麼着再怎麼着,你也可以用符號表示出來,他不依賴於某種語言,不同的算法針對的是不同的問題

相應的算法分析就是看看你用這種方法寫的程序能用多長時間跑出來,在過程中佔用了多少的內存,當然好的算法肯定是用時少,佔地小啦。(時間複雜度和空間複雜度)

開個小分支,最基礎最經典的十大算法(剛百度的):高速排序算法 、堆排序算法、歸併排序、二分查找算法、BFPRT(線性查找算法)、DFS(深度優先搜索、BFS (廣度優先搜索)、Dijkstra算法、動態規劃算法、樸素貝葉斯分類算法


最近跟着老師學完了線性表,在此做一個小結:

1.邏輯關係:就是前後相連(有前驅、後繼)

2.存儲結構不同分爲順序表(順序存儲--數組)和單鏈表(鏈式存儲--數據域和指針域)

鏈表還有:循環鏈表、雙鏈表、

兩種表的實現和基本操作的實現(初始化,增刪改查、排序)

兩種表各有優劣:順序表方便查找,其他的操作耗費資源都很大,相反鏈式表除了查詢,其他操作都很方便。

可以把兩種方式結合在一起:靜態鏈表、間接尋址

3.線性表的應用:

大整數求和 、一元多項式求和。

具體操作我現在要去碼代碼啦!

在學習的過程中複習了C++的指針的知識,比起大一的時候明白了好多

**

int *p;//int 是P指向對象的類型,不是指針自己的類型,不管指向什麼類型,指針都是無符號長整型4個字節
p=new int;//用p去申請一個整型的空間變量
*p=5;//給變量賦值爲5

new 是爲P的指向申請一個空間
delete 是刪除p的指向空間,並沒有刪除p指針本身

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章