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...