線性表 動態分配 逆置 排序

2021-08-20 09:45:54 字數 3135 閱讀 3827

1、採用線性表動態分配順序儲存結構,程式設計實現順序表中資料元素的逆置操作。

#include#include#include#includeusing namespace std;

#define true 1

#define false 0

#define ok 1

#define error 0

#define overflow -2

#define list_init_size 100

#define listincrement 10

typedef int status;

typedef int elemtype;

typedef struct

sqlist;

status initlist_sq(sqlist &l)

status listcreate_sq(sqlist &l, int n)

if (l.length == 0)

return error;

return ok;

}status listoutput_sq(sqlist l)

status listconverse_sq(sqlist &l)

return ok;

}void main()

2、有乙個帶頭結點的線性鍊錶 l,程式設計實現鍊錶中資料元素的逆置操作。要求不另設新空間。

#include#include#include#includeusing namespace std;

#define true 1

#define false 0

#define ok 1

#define error 0

#define overflow -2

typedef int status;

typedef int elemtype;

typedef struct lnode lnode,*linklist;

void createlist_l(linklist &l, int n)

q->next = null;

}status outputlist_l(linklist l)

printf("\n");

return ok;

}status listconverse_l(linklist &l)

cout << "ok" << endl;

return ok;

}void main()

3、採用線性表動態分配順序儲存結構,程式設計實現順序表中資料元素按值非遞減排列。

#include#include#include#define ture 1

#define false 0

#define ok 1

#define error 0

#define overflow -2

#define list_init_size 100

#define listincrement 10

typedef int status;

typedef int elemtype;

typedef struct

sqlist;

status initlist_sq(sqlist &l)

status listcreate_sq(sqlist &l, int n)

if (l.length == 0)

return error;

return ok;

}status listoutput_sq(sqlist l)

int partition(sqlist &l, int low, int high)

l.elem[low] = temp;

return low;

}void qsort(sqlist &l, int low, int high)

}void listsort_sq(sqlist &l)

void main()

4、有乙個帶頭結點的線性鍊錶 l,程式設計實現鍊錶中資料元素按值非遞減排列。要求不另設新空間。

#include#include#include#define true 1

#define false 0

#define ok 1

#define error 0

#define overflow -2

typedef int status;

typedef int elemtype;

typedef struct lnode

lnode,*linklist;

void createlist_l(linklist &l, int n)

q->next = null;

}status outputlist_l(linklist l)

printf("\n");

return ok;

}status result(linklist l, int n)

return p->data;

}linklist par(linklist l, int n)

return p;

}int partition(linklist &l, int low, int high)

p->data = q->data;

//(l + low)->data = (l + high)->data;

while (low < high && p->data <= pivotkey)

q->data = p->data;

//(l + high)->data = (l + low)->data;

} p = par(l, low);

p->data = temp;

//(l + low)->data = temp;

return low;

}void qsort(linklist &l, int low, int high)

}void listsort_sq(linklist &l)

qsort(l, 1, i);

}void main()

線性表的就地逆置

試分別以不同的儲存結構實現線性表的就地逆置演算法,即在原表的儲存空間將線性表 a1,a2,an 逆置為 an,an 1,a1 1 以一維陣列作儲存結構。2 以單鏈表作儲存結構。第一行輸入線性表元素個數elenum 0 第二行輸入elenum個數,作為線性表中的元素 a1,a2,an 分兩行分別輸出要...

線性表逆置(順序表和單鏈表)

這幾天練習了下線性表的逆置,順序表比較簡單,就是陣列的位置交換。順序表的逆置 單鏈表的逆置 頭插法就地逆置 遞迴順序表的逆置 中間變數temp,交換首位兩個元素的位置。void listreverse sqlist l sqlist status listinit sqlist l status l...

順序表 動態分配

儲存空間是程式執行過程中通過動態儲存語句分配的,一旦空間佔滿,就另外開闢一塊更大的儲存空間,用以替換原來的儲存空間。c語言呼叫stdlib庫,使用malloc,free函式。c 使用new,delect。include include define initsize 10 using namespa...