數據結構概述
定義:
我們如何把現實中大量而複雜的問題以特定的數據類型和特定的存儲結構保存到主存儲器(內存)中,以及在此基礎上爲實現某個功能(比如查找某個元素,刪除某個元素,對所有元素進行排序)而執行的的相應操作,這個相應的操作也叫算法
數據結構=個體+個體的關係
算法=對存儲數據的操作
算法:
解題的方法和步驟
衡量算法的標準
1、時間複雜度
大概程度要執行的次數,而非執行時間
2、空間複雜度
算法執行過程中大概佔用最大的內存
3、難易程度
4、健壯性
數據結構的地位:
數據結構是軟件中最核心的課程
程序:數據的存儲+數據的操作+可以被計算機執行的語言
預備知識:
指針:
指針的重要性
指針是C語言的靈魂
定義
地址:內存單元編號,從0開始的非負整數範圍:0-FFFFFFFF
指針:指針就是地址 地址就是指針,指針變量是存放內存單元地址的變量,指針的本質是一個操作受限的非負整數
分類:
1、基本類型指針
2、指針和數組的關係
補充知識:cpu通過三根總線(地址總線、控制總線、數據總線)與內存進行交互,地址總線負責尋找到所在的內存地址;控制總線負責讀還是寫,還是隻讀或是隻寫;數據線是負責數據傳輸,到底是cpu讀數據還是從內存中取數據到cpu。
#include<studio.h> int main(void) { }
結構體
動態內存的分配和釋放
模塊一:線性結構
連續存儲[數組]
離散存儲[隊列]
線性結構的兩種常見應用之一:棧
線性結構的兩種常見應用之二:隊列
模塊二:非線性結構
樹
圖
模塊三:查找和排序
冒泡
插入
選擇
快速
歸併排序
Java中容器和數據結構的相關知識
Iterator接口
Map
哈希表
未完待完善...