動態順序表

2021-07-13 03:37:14 字數 2823 閱讀 7121

順序表是在進算計記憶體總以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用的順序儲存就稱之為順序表。

順序表是將表中的節點依次存放在計算機記憶體中一組位址連續的儲存單元中。

任務要求:實現乙個動態順序表

功能要求:表可以動態增長,尾插元素,尾刪元素,頭插元素,頭刪元素,在指定位置插入指定元素,刪除指定元素,刪除所有指定的元素,排序,二分查詢,翻轉表。

【**實現】

/*dynamicseqlist.h*/

#pragma once

#include #include #include #include #define init_size 3

#define expand_size 3

#define max_list 10

typedef int datatype;

typedef struct seqlist

seqlist, *pseqlist;

void initlist(pseqlist pseq);

void checkcapacity(pseqlist pseq);

void print(seqlist seq);

void pushback(pseqlist pseq, datatype x);

void popback(pseqlist pseq);

void pushfront(pseqlist pseq, datatype x);

void popfront(pseqlist pseq);

void insert(pseqlist pseq, int pos, datatype x);

void remove(pseqlist pseq, datatype x);

int find(pseqlist pseq, datatype x);

void erase(pseqlist pseq,int pos);

void removeall(pseqlist pseq, datatype x);

void reverselist(pseqlist pseq);

void sortlist(pseqlist pseq);

int binarysearch(seqlist seq, datatype x);

void destroyseqlist(pseqlist pseq);

/*dynamicseqlist.c*/

#include "dynamicseqlist.h"

/*初始化,銷毀空間*/

void initlist(pseqlist pseq)

void destroyseqlist(pseqlist pseq)

}/*檢查容量,進行擴容*/

void checkcapacity(pseqlist pseq)

}/*尾插,尾刪,頭插,頭刪*/

void pushback(pseqlist pseq, datatype x)

void popback(pseqlist pseq)

pseq->size -= 1;

}void pushfront(pseqlist pseq, datatype x)

pseq->data[0] = x;

pseq->size += 1;

}void popfront(pseqlist pseq)

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

pseq->size--;

}/*插入元素,刪除元素*/

void insert(pseqlist pseq, int pos, datatype x)

pseq->data[pos] = x;

pseq->size++;

checkcapacity(pseq); //檢查插入元素後容量

} else }

int find(pseqlist pseq, datatype x) //遍歷指定元素

} return -1;

}void erase(pseqlist pseq,int pos) //刪除指定下標元素

pseq->size--;

}void remove(pseqlist pseq, datatype x)

erase(pseq,ret);

}void removeall(pseqlist pseq, datatype x) }}

/*翻轉表,排序,二分查詢*/

void reverselist(pseqlist pseq)

}void sortlist(pseqlist pseq)

} }}int binarysearch(seqlist seq, datatype x)

else if(seq.data[mid] == x)

else

}return -1;

}/*列印表*/

void print(seqlist myseq)

printf(" over\n");

}

/*test.c*/

#include "dynamicseqlist.h"

void test()

else

destroyseqlist(&myseq);

}int main()

【結果顯示】

本文出自 「pzd流川楓」 部落格,請務必保留此出處

動態順序表

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...

動態順序表

ifndef seqlist h define seqlist h include include includetypedef int datatype typedef struct seqlist seqlist,pseqlist void initseqlist pseqlist pseq v...