main.c檔案
主函式檔案
#include
"seqlist.h"
/*包含的標頭檔案*/
#include
"main.h"
void
menu()
intmain()
break
;case2:
printf
("輸入要插入的元素");
while
(scanf_s
("%d"
,&item)
, item !=-1
)break
;case3:
printf
("data: ");
show_list
(&list)
;break
;case4:
printf
("插入下標和資料");
scanf_s
("%d %d"
,&index,
&item)
;insert
(&list,index,item )
;break
;case5:
printf
("尾部刪除成功...");
pop_back
(&list)
;break
;case6:
printf
("頭部刪除成功...");
pop_front
(&list)
;break
;case7:
printf
("請輸入要刪除的下標...");
scanf_s
("%d"
,&index)
;erace_pos
(&list,index)
;printf
("刪除指定下標成功...");
break
;case8:
printf
("請輸入要刪除的元素...");
scanf_s
("%d"
,&item)
; erace_val (
&list,item)
;break
;case9:
printf
("請輸入要查詢的元素...");
scanf_s
("%d"
,&item)
;int ret=
find
(&list,item);if
(ret ==-1
)else
break
;case10:
printf
("%d"
,size
(&list));
break
;case11:
sort
(&list)
;break
;case12:
reverse
(&list)
;break
;case13:
clear
(&list)
;break
;case14:
return0;
break
;case15:
system
("cls");
menu()
;break;}
}return0;
}
函式實現檔案 seqlist.c#include
"seqlist.h"
void
inilist
(seqlist* list)
void
push_back
(seqlist* list, data data)
list->base[list->size]
= data;
list->size++;}
void
show_list
(seqlist* list)
printf
("\n");
}void
push_front
(seqlist* list, data data)
for(
int i = list->size; i >
0; i--
) list->base[0]
= data;
list->size++;}
void
insert
(seqlist* list,
int index, data data)
for(
int i = list->size; i > index; i--
) list->base[index]
= data;
list->size++;}
void
pop_back
(seqlist* list)
list->size--;}
void
pop_front
(seqlist* list)
for(
int i =
0; i < list->size-
1; i++
) list->size--;}
void
erace_pos
(seqlist* list,
int pos)
for(
int i = pos; i < list->size -
1; i++
) list->size--;}
void
erace_val
(seqlist* list,
int val)
int ret =
find
(list, val);if
(ret !=-1
) list->size--;}
}int
find
(seqlist* list,
int val)
}return-1
;}intsize
(seqlist* list)
void
sort
(seqlist* list)}}
}void
reverse
(seqlist* list)
}void
clear
(seqlist* list)
bool inc
(seqlist* list)
//擴充儲存的函式
list->capacity +
= inc_size;
return true;
}
函式檔案 seqlist.h#ifndef _seqlist_
//如果沒有_seqlist_就結束,以防外一
#define _seqlist_
#define init_seqlist_size 8
//最大儲存暫定為8
#define inc_size 3
//每次擴充記憶體的大小
#include
#include
#include
#include
//bool型別函式
typedef
int data;
//抽象資料型別
typedef
struct
seqlist;
bool inc
(seqlist* list)
;//擴容函式
void
inilist
(seqlist* list)
;void
push_back
(seqlist* list, data data)
;void
show_list
(seqlist* list)
;void
push_front
(seqlist* list, data data)
;void
insert
(seqlist* list,
int index, data data)
;void
pop_back
(seqlist* list)
;void
pop_front
(seqlist* list)
;void
erace_pos
(seqlist* list,
int pos)
;void
erace_val
(seqlist* list,
int pos)
;int
find
(seqlist* list,
int val)
;int
size
(seqlist* list)
;void
sort
(seqlist* list)
;void
reverse
(seqlist* list)
;void clear (seqlist* list)
;#endif
ps:稍加改進可用作 ***x類管理系統 資料結構與演算法 筆記 資料結構與演算法筆記 棧
以前學習的時候都沒怎麼好好的做過筆記,總是東記一點,西寫一點,甚至都不做筆記,導致後面找的時候找不到,最後還是求助搜尋引擎浪費掉很多時間。好腦筋不如個爛筆頭呀。這次又重新學習python的資料結構及演算法 中國mooc上的公開課 就好好做個筆記吧。棧是一種只能在一端進行插入和刪除的線性資料結構。一般...
演算法與資料結構筆記三
摘錄from 大話資料結構 1.樹 樹的度 結點擁有的子樹數成為結點的度 degree 度為0的結點成為葉節點 leaf 或終端結點。樹的深度或高度 結點的層次level,從根節點開始,根為第一層,根的孩子為第二層。樹中最大層次稱為樹的深度 depth 或高度,當前樹的深度為4.樹的儲存 樹儲存當然...
資料結構與演算法筆記 緒論
計算機的本質是計算,計算是尋找物件的規律,並從中找到技巧。計算的目標是高效,低耗。演算法就是借助一定的工具,在一定的規則下,以明確而機械的形式來進行的計算。演算法的主要特性 乙個好的程式不僅要考慮資料結構與演算法,還要考慮效率,即 資料結構 演算法 效率 程式 應用。演算法分析的兩個重要指標 定義 ...