考研資料結構之順序表 待續

2021-08-20 22:10:28 字數 1787 閱讀 2108

//順序表專題 

#include

#include

#define maxsize 100

//結構體定義

typedef

structsqlist;

//@function 將元素e插入在順序表中的第i個位置上

//@param sqllist(待插入的順序表) e(待插入元素) i(插入位置)

//@return 返回成功的標記

int insert(sqlist &l, int e ,int i)

for(int j = l.length; j >= i ;j--)

l.data[i-1] = e; //插入資料

l.length++;

return

1; }

//@function 刪除順序表中第i個元素

//@param sqllist(待刪除的順序表) e(待刪除元素) i(待刪除的位置)

//@return 返回成功的標記

int deletei(sqlist &l ,int i ,int &e)

l.data[i-1] = e;

for(int j = i-1; j1];

}l.length -- ;

return

1;

} //@function 根據所給的資料查詢順序表中是否存在

//@param 略

//@return 返回對應元素的在陣列中的下標(或下標+1 位置)

int findbydata(sqlist &l, int e)

}return -1;

} //@return 待輸出的順序表

int display(sqlist &l)

}//第一題

//從順序表中刪除具有最小值的元素 (假設唯一)

//並且由函式返回被刪除的元素值。

//空出的位置由最後乙個元素填補,

//如果順序表為空則顯示錯誤資訊

int fun1(sqlist &l)

for(int i = 0;iif(l.data[i]1];

l.length--;

return1;}

//第二題

//設計乙個高效的演算法,將順序表的所有元素逆置 要求演算法空間複雜度度為0(1)

void fun2(sqlist &l)

} //第三題

//長度為n的線性表l編寫時間複雜度為0(n) 空間複雜度為0(1)的演算法

//實現刪除線性表中所以 值為x 的元素

void fun3(sqlist &l,int x)

k++;

}l.length = k ;

} //第四題

//從有序的的順序表中刪除其值在給定值s,t之間 ( 要求s//如果不合理或則空表則退出

void fun4(sqlist &l,int s ,int t)

for(int i = 0;iif(l.data[i]>=s&&s1!=-1)

if(l.data[i]<=t&&t1!=-1)

}//設定陣列長度

l.length = l.length - (t1-s1+1);

//後面的整體移動

for(int j=t1+1;jreturn

1;}

int main(int argc, char *argv)

資料結構考研 線性表之順序表

整理一下王道資料結構上有關線性表之順序表的知識和題目吧!順序表的特點是表中的邏輯順序與其物理順序相同 線性表中元素位序是從1開始的,而陣列中元素的下標是從0開始的,所以如果題目說請刪除第i個元素,直接上是刪除 l data i 1 元素 順序表的優點是儲存密度大,不需要存放指標域。以及隨機訪問 也叫...

考研筆記 資料結構之順序表

線性表定義 長度為n的有序元祖。當n 0時稱為空表。線性表的基本操作是插入和刪除。線性表的順序表示指的是用一組位址連續的儲存單元一次儲存線性表的資料元素。線性表的順序儲存結構是一種隨機訪問的儲存結構。線性表第i個資料元素ai的儲存位置是 loc ai loc a1 i 1 l l為每個元素需占用的儲...

考研複習之資料結構 順序表(靜態分配)

忘得差不多的順序表撿起來重新寫,寫了快兩個小時吧,基本上算是寫完了,有希望看到其他功能的歡迎補充!include include include includeusing namespace std define maxsize 50 typedef structsqlist int initlis...