我們的動態順序表指的依舊是能動態開闢記憶體,需要用多少記憶體就開闢多少,從而合理的利用記憶體資源。
seqlist_d.h
#ifndef __seqlist_d_h__
#define __seqlist_d_h__
#include #include #include #include #define sz 2 //初始化記憶體的大小
#define inc 1 //動態開闢的大小
#define max 100 //順序表的長度
typedef int datatype;
typedef struct myseqlist
seqlist, *pseqlist;
void initseqlist(pseqlist ps); //初始化
void destoryseqlist(pseqlist ps); //銷毀
void checkseqlist(pseqlist ps); //檢查記憶體
void pushback(pseqlist ps, datatype d);//尾部插入元素
void printseqlist(const pseqlist ps);//列印
void popback(pseqlist ps);//尾刪
void pushfront(pseqlist ps, datatype d); //頭部插入元素
void popfrint(pseqlist ps); //頭部刪除元素
void insert(pseqlist ps, int pos, datatype d); //在pos前面插入目標元素
int find(pseqlist ps, datatype d); //查詢目標元素並返回下標
void remove(pseqlist ps, datatype d); //刪除目標元素
void removeall(pseqlist ps, datatype d); //刪除所有元素d
void reverseseqlist(pseqlist ps); //逆序
void sortseqlist(pseqlist ps); //氣泡排序
int binarysearch(pseqlist ps, datatype d); //二分查詢目標元素
#endif
seqlist_d.c
#include "seqlist_d.h"
void initseqlist(pseqlist ps)
}void destoryseqlist(pseqlist ps)
}void checkseqlist(pseqlist ps)
exit(exit_failure);
} }void pushback(pseqlist ps, datatype d)
exit(exit_failure);
}void printseqlist(const pseqlist ps) //列印
printf("\n");
}void popback(pseqlist ps)//尾刪
ps->sz--;
}void pushfront(pseqlist ps, datatype d) //頭部插入元素
ps->data[0] = d;
ps->sz ++;
}return;
}void popfront(pseqlist ps) //頭部刪除元素
}ps->sz--;
}void insert(pseqlist ps, int pos, datatype d) //在pos前面插入目標元素
for(i=ps->sz; i>pos; i--)
ps->data[pos] = d;
ps->sz++;
}int find(pseqlist ps, datatype d) //查詢目標元素並返回下標
}return -1;
}void remove(pseqlist ps, datatype d) //刪除目標元素
if(i != -1)
ps->sz--;
}}void removeall(pseqlist ps,datatype d) //刪除所有元素d
else
}ps->sz-=i;
}void reverseseqlist(pseqlist ps) //逆序
}void sortseqlist(pseqlist ps) //氣泡排序
}}
}int binarysearch(pseqlist ps, datatype d) //二分查詢目標元素
else if(ps->data[mid] < d)
else
}return -1;
}
test.c
#include "seqlist_d.h"
seqlist mylist;
void test1()
int main()
經驗證無誤,哈哈又是乙個練手的小專案。 雜湊閉雜湊部分介面的實現
unorder map和unorder set的提出是因為紅黑樹作為關聯式容器的底層結構時,查詢資料的時間複雜度為logn,對資料的查詢並不方便。所以unorder map和unorder set的底層實現採用雜湊。unorder map儲存的是的鍵值對。unorder set儲存的是的鍵值 uno...
順序表介面的實現
typedef int sldatatype typedef struct seqlistseqlist include list.h 初始化 void seqlistinit seqlist psl,size t capacity 銷毀 void seqlistdestory seqlist ps...
動態順序表的簡單實現
順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。這樣的儲存方式使得線性表邏輯上相鄰的元素,其在物理儲存單元中也是相鄰的。只要知道了第乙個元素的儲存位址,就可以知道線性表中任何乙個元素的儲存位址 include using namespace ...