首先,今天是中秋,明天是國慶,在這說聲節日快樂啊。
說點題外話,今天出去走了走,看到藥店就進去稱體重了。尼瑪,竟然輕了4斤,本來就是100剛出頭,現在倒好,直接掉下100了。我想這可能是因為最近天天熬夜,而且最近學校還規定天天要去早讀(直接導致睡眠不足),直到過了英語4級。唉,大一時不能考,不知今年12月能否考過啊。所以說各位還要注意休息啊,記得要早點休息。昨天晚上就11點後就因為寫這個**直到一點才睡的。可能因為當時頭腦有點暈,也許**會有點亂或者瑕疵說著遺漏什麼的,作為新人的我歡迎各位指出來哦。
看到書上的偽**,就有把它搞成c語言的衝動。也許是還不成熟吧,別人都是直接看偽**的,還有人會寫出偽**,可我還沒達到這種境界。所以只有用c語言實現它了。
其實在寫之前也看了別人寫的一些之類的,所以我的算是山寨吧,哈哈,不過和書上的偽**也差不多了。
好了,不再多說什麼了,下面就是**了,有點長。
code:
#include#include#define true 1
#define false 0
#define ok 1
#define error 0
#define overflow -2
#define list_init_size 10
#define listincrement 4
typedef int status;
typedef int elemtype;
typedef struct
sqlist;
status initlist_sq(sqlist *l); //初始化建立線性表
void destroylist_sq(sqlist *l); //銷毀線性表
void clearlist_sq(sqlist *l); //置空線性表
status listempty_sq(sqlist *l); //判斷線性表是否為空
status listlength_sq(sqlist *l); //獲取線性表的長度(元素個數)
/*獲取線性表第i個個位置的值*/
status getlem(sqlist *l, int i, elemtype *e);
/*求線性表的前繼元素*/
status priorelem(sqlist *l, elemtype cur_e, elemtype *pre_e);
/*求線性表的後繼元素*/
status nextelem(sqlist *l, elemtype cur_e, elemtype *next_e);
/*在第i個位置插入元素e*/
status listinsert_sq(sqlist *l, int i, elemtype e);
/*刪除線性表的第i個元素*/
status listdelete_sq(sqlist *l, int i, elemtype *e);
/*遍歷輸出順序表中所有元素*/
status listtransver_sq(sqlist *l);
/*對順序表中元素進行排序*/
void listsort_sq(sqlist *l);
/*倒置順序表中所有元素*/
void listinvert_sq(sqlist *l);
/*初始化線性表*/
status initlist_sq(sqlist *l)
l->length = 0; //線性表(空表)的長度為0
l->listsize = list_init_size; //表的初始儲存容量為list_init_size
return ok;
}/*銷毀線性表*/
void destroylist_sq(sqlist *l)
}/*置空線性表*/
void clearlist_sq(sqlist *l)
/*判斷線性表是否為空*/
status listempty_sq(sqlist *l)
/*獲取線性表的長度*/
status listlength_sq(sqlist *l)
/*獲取線性表的第i個元素的值*/
status getlem(sqlist *l, int i, elemtype *e)
if(l->elem == null)
*e = l->elem[i-1];
return ok;
}/*求線性表的前繼元素*/
status priorelem(sqlist *l, elemtype cur_e, elemtype *pre_e)
i++;
}return error;
}/*求線性表中的後繼元素*/
status nextelem(sqlist *l, elemtype cur_e, elemtype *next_e)
i++;
}return error;
}status listinsert_sq(sqlist *l, int i, elemtype e)
elemtype *q = &(l->elem[i-1]); //q為插入位置
elemtype *p; //是p指向最後乙個元素
for(p = &(l->elem[l->length - 1]); p >=q; p--)
*(p+1) = *p;
*q = e; //插入e
l->length ++;
return ok;
}/*刪除線性表的第i個元素*/
status listdelete_sq(sqlist *l, int i, elemtype *e)
elemtype *p = &(l->elem[i-1]); //p為被刪除元素的位置
*e = *p; //被刪除的元素的值賦給e
elemtype *q = l->elem + l->length - 1; //表尾元素的位置
for(p = p+1; p <= q; p++)
*(p-1) = *p; //被刪除元素之後的元素左移
l->length --;
return ok;
}/*遍歷輸出順序表中所有元素*/
status listtransver_sq(sqlist *l)
else
return ok;
}/*對順序表中元素進行排序*/
void listsort_sq(sqlist *l)
tmp = l->elem[i];
l->elem[i] = l->elem[max];
l->elem[max] = tmp;
}} /*選擇排序法*/
/*倒置順序表中所有元素*/
void listinvert_sq(sqlist *l)
}int main()
執行結果:
資料結構嚴蔚敏 第二章 線性表
2.4 一元多項式的表示及相加 總結資料結構嚴蔚敏 第二章 線性表 學習的書籍為 資料結構 c語言版 清華大學出版社 該章節為書中的第 18頁 43頁。從第2章至第4章討論的 線性表 棧 佇列 串和陣列 都屬於線性結構。線性結構的基本特點是除第乙個元素無直接前驅,最後乙個元素無直接後繼之外,其他每個...
嚴蔚敏資料結構筆記 第二章線性表
第二章 線 性 表 1.線性表 是由 n n 0 個資料元素組成的有限序列。2.線性表的基本運算有 1 initlist l 構造空表,即表的初始化 2 listlength l 求表的結點個數,即表長 3 getnode l,i 取表中第 i個結點,要求 1 i listlength l 4 lo...
資料結構 嚴蔚敏版第二章筆記
準備考研了,我們學校使用的教材不是這一本,大概整理一下。共勉 線性結構的特點 在資料元素的非空有限集合中 存在唯一的乙個被稱為 第乙個 的資料元素 存在唯一的乙個被稱為 最後乙個 的資料元素 除了第乙個之外,集合中的每個資料元均只有乙個前驅 除了最後乙個之外,集合中的每乙個元素均只有乙個後繼 2.1...