資料結構 順序表簡單功能實現

2021-09-02 11:40:05 字數 2995 閱讀 2014

標頭檔案seqlist.h   包含了順序表的增刪查改以及氣泡排序和二分法及一些簡單功能實現

#pragma once

#include typedef int sldatatype;

typedef struct seqlist

seqlist;

// 基本增刪查改介面

//初始化

void seqlistinit(seqlist* psl, size_t capacity);

//銷毀

void seqlistdestory(seqlist* psl);

//擴容

void checkcapacity(seqlist* psl);

//尾插

void seqlistpushback(seqlist* psl, sldatatype x);

//尾刪

void seqlistpopback(seqlist* psl);

//頭插

void seqlistpushfront(seqlist* psl, sldatatype x);

//頭刪

void seqlistpopfront(seqlist* psl);

//查詢

//沒有找到返回-1

int seqlistfind(seqlist* psl, sldatatype x);

//在pos所在的下標做資料插入

void seqlistinsert(seqlist* psl, size_t pos, sldatatype x);

//刪除pos對應資料

void seqlisterase(seqlist* psl, size_t pos);

//刪除第乙個x

void seqlistremove(seqlist* psl, sldatatype x);

//修改pos下標的資料為x

void seqlistmodify(seqlist* psl, size_t pos, sldatatype x);

void seqlistprint(seqlist* psl);

//氣泡排序

void seqlistbubblesort(seqlist* psl);

//二分查詢(資料有序)

int seqlistbinaryfind(seqlist* psl, sldatatype x);

//刪除所有遇到的x

void seqlistremoveall(seqlist* psl, sldatatype x);

seqlist.c    這是對頭檔案seqlist.h中函式宣告的定義

#include "seqlist.h"

#include #include #include void seqlistinit(seqlist* psl, size_t capacity)

void seqlistdestory(seqlist* psl)

void checkcapacity(seqlist* psl)

int newcapicity = 2 * psl->capicity;

sldatatype * newarray = (sldatatype*)malloc(newcapicity*sizeof(seqlist));

assert(newarray);

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

free(psl->array);

assert(psl->array == null);

psl->array = newarray;

psl->capicity = newcapicity;

}void seqlistpushback(seqlist* psl, sldatatype x)

void seqlistpopback(seqlist* psl)

psl->size--;

}void seqlistpushfront(seqlist* psl, sldatatype x)

psl->size++;

psl->array[0] = x;

}void seqlistpopfront(seqlist* psl)

psl->size--;

}int seqlistfind(seqlist* psl, sldatatype x)

} return -1;

}void seqlistinsert(seqlist* psl, size_t pos, sldatatype x)

psl->size++;

psl->array[pos] = x;

}void seqlisterase(seqlist* psl, size_t pos)

psl->size--;

}void seqlistremove(seqlist* psl, sldatatype x) }}

1void seqlistmodify(seqlist* psl, size_t pos, sldatatype x)

void seqlistprint(seqlist* psl)

printf("\n");

}void seqlistbubblesort(seqlist* psl)

} if (flag==0)

}}int seqlistbinaryfind(seqlist* psl, sldatatype x)

else if (x < psl->array[mid])

else

}return -1;

}void seqlistremoveall(seqlist* psl, sldatatype x)

} psl->size = j;

}

簡單的不全的測試** 

#include "seqlist.h"

#include void testseqlist()

int main()

資料結構 JAVA實現簡單的順序表

public inte ce ilist 順序錶類sqlist的 public class sqlist implements ilist 置空操作 public void clear 判斷當前長度是否為0,為0即為空表 public boolean isempty 取表長度,返回curlen當前長...

資料結構 簡單的順序表結構

編寫乙個程式exp2 1.cpp,實現順序表的各種運算 假設順序表的元素型別為char 並在此基礎上完成如下功能 1 初始化順序表l 2 採用尾插法依次插入元素a,b,c,d,e 3 輸出順序表l 4 輸出順序表l的長度 5 判斷順序表l是否為空 6 輸出順序表l的第3個元素 7 輸出元素a的位置 ...

資料結構 順序表簡單操作

基於靜態陣列的順序表簡單操作 初始化 尾插 尾刪 頭插 頭刪 讀任意位置元素 修改任意位置元素 查詢指定元素值的下標 在任意位置插入元素 seqlist.h pragma once include include include include include define seqlistmax 1...