用C語言實現靜態順序表

2021-08-04 12:01:03 字數 2435 閱讀 1879

用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 初始化 ...