已知順序表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...