test.h
#ifndef __seplist_h__
#define __seplist_h__
#include
#include
#include
#include
//#define max 100
#define default_sz 3 //當前預設有效值
#define isc_sz 2 //動態分配預設增長個數
typedef int datatype;
typedef struct seqlist
seqlist,*pseqlist;
void initseqlist(pseqlist plist);//初始化順序表
void pushback(pseqlist plist,datatype d);//從尾部插入資料
void popback(pseqlist plist);//從尾部刪除資料
void pushfront(pseqlist plist,datatype d);//從頭部插入資料
void popfront(pseqlist plist);//從頭部刪除資料
int find(pseqlist plist, datatype d);//查詢指定數
void remove(pseqlist plist, datatype d);//指定元素刪除
void removeall(pseqlist plist, datatype d);//刪除指定的所有元素
void show(pseqlist plist);//列印順序表
void bubblesort(pseqlist plist);//氣泡排序
int binarysearch(pseqlist plist, datatype d);//非遞迴實現二分查詢
int printsearch(pseqlist plist, int left, int right, datatype d);//遞迴實現二分查詢
void insert(pseqlist plist, int pos, datatype d);//指定位置插入
void reverselist(pseqlist plist);//反向旋轉
void destroyseqlist(pseqlist plist);//清空動態順序表
void checkseqlist(pseqlist plist);//判斷動態順的序表的空間是否已滿,滿的話進行擴容
#endif
list.c
#include"test.h"
void
checkseqlist(pseqlist plist)
plist->data= tmp;
plist->capatity += isc_sz;
}}void
initseqlist(pseqlist plist)
plist->sz = 0;
plist->capatity = 0;
memset(plist->data, 0, sizeof(pseqlist)*default_sz);
}void
pushback(pseqlist plist,datatype d)
*/ plist->data[plist->sz] = d;
plist->sz++;
}void
popback(pseqlist plist)
plist->data[plist->sz - 1] = 0;
plist->sz--;
}void
pushfront(pseqlist plist,datatype d)
*/ checkseqlist(plist);
for (i = plist->sz; i > 0; i--)
plist->data[0] = d;
plist->sz++;
}void
popfront(pseqlist plist)
for (i = 0; i < plist->sz - 1; i++)
plist->sz--;
}void
show(pseqlist plist)
}int
find(pseqlist plist, datatype d)
return -1;
}void
remove(pseqlist plist, datatype d)
plist->sz--;
}}void
removeall(pseqlist plist, datatype d)
plist->sz--;
pos = find(plist, d);
}}void
bubblesort(pseqlist plist)}}
}int
binarysearch(pseqlist plist, datatype d)
else
if (plist->data[mid] < d)
else
if (plist->data[mid] == d)
}return -1;
}void
insert(pseqlist plist, int pos, datatype d)
plist->data[pos] = d;
}void
reverselist(pseqlist plist)
}void
destroyseqlist(pseqlist plist)
int printsearch(pseqlist plist, int left, int right, datatype d)
else
if (plist->data[mid] < d)
else
if (plist->data[mid] == d)
}return -1;
}
test.c
#include"test.h"
extern
struct seqlist sz;
void test1()
void test2()
int main()
用C 實現簡單的順序表
這周課後練習是實現老師上課的時候講的順序表的一些基本操作。我們用的是c語言的教材,但之前學計算機語言的時候學的是c 雖然大家都說差不多,但對c語言的一些用法不太熟悉,還是嘗試著用c 的語言來編寫。如下 includeusing namespace std int y struct mylist vo...
用C 實現順序表
seqlist.h include include using namespace std typedef int datatype class seqlist delete array array null array newarray capacity 2 capacity private da...
C語言順序表的簡單實現
插入元素 刪除元素 定位元素 include include define maxsize 1024 線性表的最大長度 typedef structsqlist,sqlink 說明標示符 void createlist sqlink l 創空表 void clearlist sqlink l 置空表...