日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构学习篇(一)---大纲、简介、作用

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构学习篇(一)---大纲、简介、作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構的概述

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?
  • void show_array(int *p,int len)?
  • {?
  • p[2]=-1;?
  • }?
  • int main(void)?
  • {?
  • int a[5]={1,2,3,4,5};?
  • show_array(a,5);?
  • printf(“%d\n”,a[2]);?
  • return 0;?
  • }?
  • a[2]的值已經改變了,變成了-1.改變的是地址。?
  • p[2]==*(p+2)==*(a+2)==a[2]?
  • p[0]==*(p+0)==*p?
  • 如果要循環遍歷數組?
  • void show_array(int *p,int len)?
  • {?
  • for(i=0; i<len; i++)?
  • {?
  • printf(“%d\n”,p[i]);?
  • }?
  • }?
  • void show_array(int *p, int len) { p[2]=-1; } int main(void) { int a[5]={1,2,3,4,5}; show_array(a,5); printf(“%d\n”,a[2]); return 0; } a[2]的值已經改變了,變成了-1.改變的是地址。 p[2]==*(p+2)==*(a+2)==a[2] p[0]==*(p+0)==*p 如果要循環遍歷數組 void show_array(int *p, int len) { for(i=0; i<len; i++) { printf(“%d\n”,p[i]); } }

    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()

    跨函數使用內存

    javaA a = new A();

    C中? A *a = (A *) malloc(sizeof(A));


    [cpp] view plaincopyprint?
  • #include<stdio.h>?
  • #include<malloc.h>?
  • ?
  • struct Student?
  • {?
  • int id;?
  • int age;?
  • };?
  • ?
  • struct Student *createStudent(void);?
  • void showStudent(struct Student *);?
  • ?
  • int main(void)?
  • {?
  • struct Student *s;?
  • s = createStudent();?
  • showStudent(s);?
  • ?
  • return 0;?
  • }?
  • ?
  • struct Student* createStudent(void)?
  • {?
  • struct Student * s = (struct Student *) malloc(sizeof(struct Student));?
  • s->id=10000;?
  • s->age=20;?
  • return s;?
  • }?
  • ?
  • void showStudent(struct Student*)?
  • {?
  • printf(“%d %d\n”,s->id, s->age);?
  • }?
  • 總結

    以上是生活随笔為你收集整理的数据结构学习篇(一)---大纲、简介、作用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。