用c語言實現順序表一般有靜態和動態兩種,靜態順序表在實行的過程中是直接定義乙個陣列,用他來存放資料,資料在順序表中的儲存是連續存放的,下面我將用三個函式檔案來實現乙個簡單的順序表,並且實現增、刪、查、逆序、排序等功能:
seqlist.h(函式的宣告以及標頭檔案的引用)
#ifndef __seqlist_h__
#define __seqlist_h__
#include#include#include#includetypedef int datatype;
#define printtype "%d "
#define max 10
typedef struct seqlist
seqlist,*pseqlist;
void initseqlist(pseqlist ps);//初始化
void pushback(pseqlist ps, datatype d);//尾部插入資料d
void pushfront(pseqlist ps, datatype d);//在頭部插入資料d
void display(pseqlist ps);//列印所有資料
void popback(pseqlist ps);//尾部刪除資料
void popfront(pseqlist ps);//頭部刪除資料
int find(pseqlist ps, datatype d);//刪除指定位置的資料
void insert(pseqlist ps, datatype d, int pos);//在指定的位置插入資料
void remove(pseqlist ps, datatype d);//刪除資料d
void removeall(pseqlist ps, datatype d);//刪除所有相同的資料d
void reverse(pseqlist ps);//將所有資料逆序
void sort(pseqlist ps);//給所有資料排序
int binarysearch(pseqlist ps, datatype d);//二分查詢指定資料
#endif//seqlist
seqlist.c(函式的實現過程)
#include"seqlist.h"
void initseqlist(pseqlist ps)
void display(pseqlist ps)
for (i = 0; i < ps->sz; i++)
printf("\n");
}void pushback(pseqlist ps, datatype d)
else }
void pushfront(pseqlist ps, datatype d)
for (i = ps->sz; i > 0; i--)
ps->data[0] = d;
ps ->sz++;
}void popback(pseqlist ps)
ps->sz--;
}void popfront(pseqlist ps)
int find(pseqlist ps, datatype d)
}return -1;
}void insert(pseqlist ps, datatype d,int pos)
memmove(ps->data + pos + 1, ps->data + pos, (ps->sz - pos)*sizeof(datatype));
ps->data[pos] = d;
ps->sz++;
}void remove(pseqlist ps, datatype d)
pos = find(ps, d);
if (pos != -1) }
void removeall(pseqlist ps, datatype d)
while ((find(ps, d)) != -1) }
void reverse(pseqlist ps)
while (left < right) }
void sort(pseqlist ps)
for (i = 0; i < ps->sz-1; i++)
} }}
int binarysearch(pseqlist ps, datatype d)
else
}return -1;
}
test.c(測試)#define _crt_secure_no_warnings 1
c語言實現靜態順序表
標頭檔案如下 ifndef s l define s l include include include pragma warning disable 4996 define max size 10 typedef int datatype typedef struct seqlist seqlis...
C語言實現靜態順序表
靜態順序表是儲存在乙個連續的陣列中的,因此對其資料型別有乙個結構體宣告。尾插 void seqpushback seqlist pseq,datatype x pseq a pseq size x 尾刪 void seqpopback seqlist pseq 頭插 void seqpushfron...
C語言實現順序表 靜態
ifndef seqlist h define seqlist h typedef int datatype define max size 10 順序表的容量,可調整 typedef struct seqlist seqlist void seqlistinit seqlist pseq 初始化 ...