線性表的應用1(順序表的遍歷和查詢)

2021-07-10 23:41:57 字數 734 閱讀 9337

已知順序表l中的資料型別為整型。設計演算法將其調整為左右兩部分,左邊的元素(即排在前面的)均為奇數,右邊所有元素(即排在後面的)均為偶數,並要求演算法的時間複雜度為o(n),空間複雜度為o(1)。

由於順序表的空間已經確定,所以可以遍歷查詢每個元素,判斷其是否為奇數,並將其放入表的頭部或者尾部

**實現:

#include #include #include #define overflow -2

#define list_init_size 100 //線性表儲存空間的初始分配量

#define listincrement 10 //線性表儲存空間的分配增量

using namespace std;

typedef int elemtype;

typedef struct

seqlist;

int initlist(seqlist &l)

int listinsert(seqlist &l, int i,elemtype e)

q=&(l.elem[i-1]);

for(p=&(l.elem[l.length-1]); p>=q; --q)

*q=e;

++l.length;

return 1;

}int listdelet(seqlist &l,int i,elemtype &e)

void output(seqlist &l)

{ for(int i=0; i

線性表 順序表的應用

一 刪除順序表中所有值為x的資料元素 要求 時間複雜度為o n 空間複雜度為o 1 若用基本運算實現 void delnode1 sqlist l,elemtype x 時間複雜度為n 2 故解法為 複製保留的元素 逐個複製要保留的元素,共用空間,不需要額外空間 void delnode1 sqli...

線性表 順序表的增 刪 查

include define max size 100 順序表的結構體定義 typedef struct sequence listsequence list 考試時常用 int a max size int n 不用結構體 找到遞增有序的sl中第乙個比x大的元素的下標 因為不改變sl內容所以是值傳...

線性表 順序表的實現和應用

靜態分配順序儲存結構的線性表 標頭檔案 includeconst int maxsize 100 templateclass sqlist sqlist datatype array,int n sqlist int getlength 獲取順序表長度 datatype getelement int...