數(shù)據(jù)結(jié)構(gòu)與算法_線性結(jié)構(gòu)
線性表
線性表是由n(n>0)個(gè)相同類型的數(shù)據(jù)元素組成的有限序列,它是最基本,最常用的一種線性結(jié)構(gòu)。
????順序表是順序存儲(chǔ)方式,即邏輯上相鄰的數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)位置也是相鄰的。順序存儲(chǔ)方式,元素存儲(chǔ)是連續(xù)的,中間不允許有空,可以快速定位第幾個(gè)元素,但插入,刪除時(shí)需要移動(dòng)大量元素。

????鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)方式,邏輯上相鄰的數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)位置不一定相鄰,那么怎么表示邏輯上的相鄰關(guān)系呢?

????基本操作:
????1)初始化????2)創(chuàng)建????3)取值????4)查找????5)插入????6)刪除

棧:
后進(jìn)先出(LIFO)的線性序列,稱為“棧”。棧也是線性表,只不過它是操作受限的線性表,只能在一端進(jìn)出操作。進(jìn)出的一端稱為棧頂(top)。另一端稱為棧底(base)。
??梢皂樞虼鎯?chǔ)也可以鏈?zhǔn)酱鎯?chǔ),分別稱為順序棧和鏈棧。
STL庫(kù):<stack>
#include<stack>
????順序棧:
????分配地址時(shí),動(dòng)態(tài)分配:
????typedef char ElemType;//別名

????靜態(tài)分配時(shí):

????鏈棧:

隊(duì)列
先進(jìn)先出(FIFO)的線性序列,也是一種線性表。他也是操作受限的線性表,只能在兩端操作:一端進(jìn),一端出。隊(duì)列可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ)。
STL庫(kù)<queue>
????順序隊(duì)列:
????分配地址時(shí),動(dòng)態(tài)分配:

????分配地址時(shí),靜態(tài)分配:

????鏈隊(duì)

數(shù)組
數(shù)組是由相同類型的數(shù)據(jù)元素構(gòu)成的有限集合。
STL庫(kù)<vector>
一維數(shù)組看作一個(gè)線性表。

二維數(shù)組也可以看作一個(gè)線性表X=(X0,X1,X2,......,Xn-1),只不過每一個(gè)數(shù)據(jù)元素Xi也是一個(gè)線性表。

數(shù)組一般采用順序存儲(chǔ)結(jié)構(gòu)。
字符串


????字符串的存儲(chǔ):
????字符串的存儲(chǔ)可以使用順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩種方式。




?