實現動態順序表

2021-07-13 16:06:30 字數 2000 閱讀 4777

標頭檔案seqlist.h中:

#pragma once

#include #include typedef int datatype;

typedef struct seqlist

seqlist;

//列印順序表

void printseqlist(seqlist * pseq)

printf("\n");

}//增大容量

void checkcapacity(seqlist * pseq) 

}//初始化

void initseqlist(seqlist * pseq)

//尾插入

void pushback(seqlist * pseq,datatype x)

//尾刪除

void popback(seqlist * pseq)

pseq->_size--;

}//頭插入

void pushfront(seqlist * pseq,datatype x)

pseq->_array[0]=x;

pseq->_size++;

}//頭刪除

void popfront(seqlist * pseq)

for(;i<( int)pseq->_size;i++)

pseq->_size--;

}//中間任意位置插入

void insert(seqlist * pseq,size_t pos,datatype x)

pseq->_array[pos]=x;

pseq->_size++;

}//刪除某個位置上的數

void erase(seqlist * pseq,size_t pos)

for(;i<( int)pseq->_size;i++)

pseq->_size--;

}//刪除其中第一次出現的某個數

void remove(seqlist * pseq, datatype x)

pseq->_size--;

return;}}}

//刪除其中出現的所有的 某個數

void removeall(seqlist *pseq, datatype x)

else  //沒找到,則將pseq->_arry[secondindex]的值賦給pseq->_array[firstindex],同時firstindex後移一位,secondindex後移一位

secondindex++;

} pseq->_size-=count;   //減去其中 出現的所有的某個數後 的長度

}//查詢其中的某個數,如果找到了,就返回其下標,沒有找到就返回-1

int find(seqlist * pseq, datatype x)

if(i>=pseq->_size)  }

//修改某個下標的數

void modify(seqlist * pseq,size_t pos,datatype x)

}}原始檔(.c檔案)中:

#include #include "seqlist.h"

//尾插入測試

void test1()

//尾刪除測試

void test2()

//頭插入測試

void test3()

//頭刪除測試

void test4()

//中間任意位置插入測試

void test5()

//刪除某個位置上的數

void test6()

//刪除其中第一次出現的某個數測試

void test7()

//刪除其中出現的所有的 某個數測試

void test8()

//查詢其中的某個數,如果找到了,就返回其下標,沒有找到就返回-1

void test9()

//修改某個下標的數

void test10()

int main()

動態實現順序表

順序表是在計算機記憶體中以 陣列的形式儲存的線性表,是指用一組位址連續的 儲存單元 依次儲存 資料元素 的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的 儲存單元中。下面來進行順序表的動態實現 標頭檔案 ifndef seqlist ...

實現動態順序表

靜態順序表和動態順序表之間的區別就是靜態順序表的儲存大小一旦設定好之後便不能修改 顯然動態順序表採用的是動態分配記憶體,容量是可以增加的,當然動態順序表要比靜態順序表多增加乙個監測容量的引數,每當當前容量存滿的時候就要觸發擴容機制,實現動態開闢記憶體。由於兩者差別不是很大,這裡我就只實現動態順序表,...

動態順序表實現

動態順序表相比於靜態順序表加入了擴容機制,在進行所有插入操作是都必須判斷是否需要擴容 結構體 typedef int datatype define init capacity 3 typedef struct seqlistd seqlistd 順序表的初始化和銷毀 初始化 void seqlis...