大话数据结构学习笔记
生活随笔
收集整理的這篇文章主要介紹了
大话数据结构学习笔记
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
大話數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記
筆記內(nèi)容:
第三章線性表
1、 概念
2、 順序存儲(chǔ)結(jié)構(gòu)
3、 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
4、 總結(jié)
1、概念 零個(gè)或者多個(gè)數(shù)據(jù)元素的有序序列叫做線性表。按照存儲(chǔ)結(jié)構(gòu)分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
2、順序存儲(chǔ)結(jié)構(gòu)
線性表的順序存儲(chǔ)結(jié)構(gòu),指的是用一段地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的數(shù)據(jù)元素。 可以類比數(shù)組,**有三要素**,**起始位置**,**當(dāng)前線性表長度**,**線性表的總?cè)萘?*。 數(shù)據(jù)結(jié)構(gòu)表示如下: #define MAX_SIZE 20 //總?cè)萘?/span> typedef int ElemType; typedef struct {ElemType data[MAX_SIZE];//存儲(chǔ)線性表的元素以及起始位置int length;//當(dāng)前長度 }SqList,*pSqList;常見的操作方法有創(chuàng)建、插入、刪除、尋找第i個(gè)位置元素、輸出元素等等。其中插入和刪除需要移動(dòng)數(shù)組中的元素,時(shí)間復(fù)雜度為O(n),訪問元素比較方便,時(shí)間復(fù)雜度為O(1),常用于長度比較固定不需要經(jīng)常插入刪除的,可以快速訪問的場(chǎng)景。
3、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
為了解決線性表插入刪除耗時(shí)問題,由多個(gè)節(jié)點(diǎn)連接成的,每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)信息以及指示其直接后繼信息的鏈表稱之為線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)表示如下: /*線性表的單鏈表存儲(chǔ)結(jié)構(gòu)*/ typedef int ElemType; typedef struct Node{ElemType data;struct Node *next; }LinkList,*pLinkList;鏈表的插入和刪除操作,如果是單次,因?yàn)橐闅v找到插入的地方,時(shí)間復(fù)雜度為O(n),但是如果在同一位置處頻繁插入多個(gè)元素,那么時(shí)間復(fù)雜度是O(1),但是它不具有隨機(jī)存儲(chǔ)的特性,遍歷鏈表比較耗時(shí),循環(huán)鏈表以及雙向鏈表為了解決遍歷的問題,但是引入了指針變量,以空間換時(shí)間。
4、 總結(jié)
順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)各有優(yōu)缺點(diǎn),需要根據(jù)實(shí)際的需求進(jìn)行選擇,需要注意使用時(shí)的邊界條件。總結(jié)
以上是生活随笔為你收集整理的大话数据结构学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3做答题器_现在很火的答题赢
- 下一篇: 软件工程导论作业