線(xiàn)性表
- 線(xiàn)性表定義:由n個(gè)(n>=0)個(gè)數(shù)據(jù)特性相同的元素構(gòu)成的有限序列稱(chēng)為線(xiàn)性表。
- 線(xiàn)性表特點(diǎn):每個(gè)節(jié)點(diǎn)有一個(gè)直接前驅(qū)節(jié)點(diǎn),有一個(gè)后驅(qū)節(jié)點(diǎn);第一個(gè)節(jié)點(diǎn)沒(méi)有前驅(qū),最后一個(gè)節(jié)點(diǎn)沒(méi)有后驅(qū)。
- 線(xiàn)性表的順序存儲(chǔ)表示
線(xiàn)性表的順序表示指的是用一組地址連續(xù)的存儲(chǔ)單元依次存放線(xiàn)性表的數(shù)據(jù)元素,這種表示也稱(chēng)為線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)或順序映像。特點(diǎn)是:邏輯上相鄰的數(shù)據(jù)元素,其物理次序也是相鄰的。
typedef double dataType;//給現(xiàn)有類(lèi)型重命名
struct SeqList{
int dataArray[100];//存放順序表的長(zhǎng)度
int nlength;//記錄當(dāng)前順序表的長(zhǎng)度
};
如果我定義了一個(gè)double類(lèi)型,可以將intdataArray[100]重命名為dataType dataArray[100];就將本來(lái)的int型改為了double型。
初始化順序表
- void initList(SeqList
- myList)
{//把數(shù)據(jù)元素清空
for (int i=0;i<LENGTH;i++){
myList->dataArray[i]=0;}
//把長(zhǎng)度置0
mylist.nLength=0;
}
- 求長(zhǎng)度
int listLength(SeqList myList){
return myList.nLength;} - 插入數(shù)據(jù)項(xiàng)
void insertNode(SeqList * myList,int index,dataType data)
{
if(index<0||index>myList->nLength){
//輸入不合法
index=myList->nLength;
}
for(int i=myList->nLength-1;i>=index;i--)
myList->dataArray[i+1]=myList->dataArray[i];}
myList->dataArray[index]=data;
myList->nLength++;
} - 獲取某位置的數(shù)據(jù)項(xiàng)
dataType getNodeWithIndex(SeqList myList,int index);