動態順序表

2021-08-05 19:11:09 字數 2780 閱讀 2833

動態順序表

capacity   指的是順序表的容量,並不是實際儲存的有效資料

size    當前順序表的有效資料個數

標頭檔案seqlist.h

#ifndef __seqlist_h__

#define __seqlist_h__

#endif __seqlist_h__

#include#include#include#include#pragma warning(disable:4996)

#define max 100

#define default_sz 3

#define inc_sz 2

typedef int datatype;

typedef struct seqlist

seqlipst, *pseqlist;

void initseqlist(pseqlist p);

void destroyseqlist(pseqlist p);

void checkcapacity(pseqlist p);

void pushback(pseqlist p, datatype d);

void popback(pseqlist p);

void pushfront(pseqlist p, datatype d);

void popfront(pseqlist p);

void show(pseqlist p);

int find(pseqlist p, datatype d);

void remove(pseqlist p, datatype d);

void removeall(pseqlist p, datatype d);

int binarysearch(pseqlist p, datatype d);//二分查詢

void sort(pseqlist p);

函式的實現

seqlist.c

#include"seqlist.h"

#pragma warning(disable:4996)

void initseqlist(pseqlist p)

p->capacity = 0;

p->size = 0;

memset(p->array, 0, sizeof(datatype)*default_sz);

}void destroyseqlist(pseqlist p)

void checkcapacity(pseqlist p)

} p->capacity += inc_sz;

}void pushback(pseqlist p, datatype d)

void popback(pseqlist p)

p->size--;

}void pushfront(pseqlist p, datatype d)

else

p->array[0] = d;

p->size++; }}

void popfront(pseqlist p)

for (i = 0; i < p->size-1; i++)

p->size--;

}int find(pseqlist p, datatype d)

} return -1;

}void remove(pseqlist p, datatype d)

pos = find(p, d);

if (pos == -1)

for (i = pos; i < p->size-1; i++)

p->size--;

}void removeall(pseqlist p, datatype d)

p->size--; }}

int binarysearch(pseqlist p, datatype d)//二分查詢

else if (p->array[mid] < d)

else

return mid;

} return -1;

}void sort(pseqlist p)

for (size_t i = 0; i < p->size-1; i++)

} }}

void show(pseqlist p)

for (i = 0; i < p->size; i++)

printf("\n");

}

測試

text.c

#include"seqlist.h"

#pragma warning(disable:4996)

void menu()

int main()

else

break;

} case 10:

else

break;

} case 0:

break;

default:

printf("輸入錯誤,請重新輸入:");

break;

} }while(input);

destroyseqlist(&mylist);

system("puase\n");

return 0;

}

動態順序表

ifndef seqlist h define seqlist h define capacity 3 typedef struct seqlist typedef enum tag typedef struct findret void expendseqlist seqlist pseq 擴大容...

動態順序表

動態順序表 引用庫函式 include include 巨集定義 define list init size 4 define list add size 2 define overflow 2 typedef int elemtype elemtype元素型別 定義結構體 typedef stru...

動態順序表

順序表是在進算計記憶體總以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用的順序儲存就稱之為順序表。順序表是將表中的節點依次存放在計算機記憶體中一組位址連續的儲存單元中。任務要求 實現乙個動態順序表 功能要求 表可以動態增長,尾插元素,尾刪元素,頭插元素,頭...