数据结构学习篇(一)---大纲、简介、作用
數據結構的概述
01.02.03課程
預備知識:
模塊一:線性結構
連續存儲(數組)
離散存儲(鏈表)
線性結構的兩種常見應用之一:棧
線性結構的兩種常見應用之二:隊列
專題:遞歸
1. 1+2+3+......+100的和
2. 求階乘
3. 3.漢諾塔
4. 走迷宮
模塊二:非線性結構
樹
圖
模塊三:查找和排序
排序:冒泡、插入、選擇、快速、歸并排序
補充:
java中的容器和數據結構的相關知識.
Iterator 接口
Map 哈希表
書籍推薦:
嚴蔚敏、吳偉明 《數據結構》---偽算法
高一凡 --西電
黃國瑜
數據結構
定義:我們如何把現實中大量而復雜的問題以特定的數據類型和特定的存儲結構保存到主存儲器(內存)中,以及在此基礎上為實現某個功能而執行相應的操作,這個相應的操作也叫做算法。
數據要怎么去存?---數據結構所研究的問題
怎么去操作數據?---算法
數據結構=個體+個體的關系
算法=對存儲數據的操作
算法:解題的方法和步驟.
衡量算法的標準:
1. 時間復雜度
大概程序要執行的次數,而非執行的時間
2. 空間復雜度
算法執行過程中大概所占用的最大內存
3. 難易程度
4. 健壯性
數據結構的地位
數據結構是軟件中最核心的內容
數據庫? 字段? --屬性
??????? 記錄? --一個事務
?? 表??? --事務的集合
程序 = 數據的存儲+數據的操作+可以被計算機執行的語言
學完此課程,你會發現你什么都干不了,并且這門課程很難,很重要。它可以促進我們對其他課程的學習,慢慢的發酵。
04.05.06課程
預備知識
指針是C語言的靈魂
地址:內存單元的編號,從0開始的非負整數,0-FFFFFFFF.
指針就是地址,地址就是指針。
[cpp] view plaincopyprint?
06.07.08課程
結構體--是數據類型,只有屬性,沒有方法。
struct Student
{
//屬性
};
分號不能省略。
為什么會出現結構體?
為了表示一些復雜的數據而普通的基本類型變量已經無法滿足要求。
什么叫結構體?
結構體是用戶根據實際需要自己定義的復合數據類型。
如何使用結構體:
struct Student
{
int id;
String name;
int age;
};
struct Student st ={1000, ”zhangsan”, 20};
struct Student *s = &st;
st.id = s->id;
s->name=”lisi”;
s->id ==>(*s).id ==>st.id;
09.10課程
動態分配內存的概述 malloc()
跨函數使用內存
java中 A a = new A();
C中? A *a = (A *) malloc(sizeof(A));
[cpp] view plaincopyprint?
總結
以上是生活随笔為你收集整理的数据结构学习篇(一)---大纲、简介、作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 〖3D激光点云〗深度学习点云知识!
- 下一篇: 最短路径算法