順序表的相關基本操作實現

2021-08-19 21:59:49 字數 4933 閱讀 6275

靜態:

seqlist.h

#pragma once//防止標頭檔案多次引用

#define max_size 100

typedef struct seqlist

seqlist;

void initseqlist(seqlist *seq);//初始化

bool insertseqlist(seqlist *seq, int pos, int val);//在 pos 位置插入 val 值

int searchseqlist(seqlist *seq, int pos, int key);//查詢 key 值

bool deletepos(seqlist *seq, int pos, int *rtv);//刪除 pos 位置的值

bool delete(seqlist *seq,int pos,int key);//刪除乙個 key 值

bool getarryelem(seqlist *seq, int pos, int *rtv);//得到pos位置的值

int getlength(seqlist *seq);//得到長度

void clear(seqlist *seq);//清空

void seqlistprint(seqlist *seq);//列印

seqlist.cpp

#include"stdafx.h"

#include"seqlist.h"

#include

#include

void initseqlist(seqlist *seq)//初始化

seq->size=0;

}static bool isfull(seqlist *seq)

bool insertseqlist(seqlist *seq,int

pos,int val)//在pos位置插入val的值

for(int i=seq->size-1;i>=pos;i--)

seq->arry[pos]=val;

seq->size++;

return true;

}int searchseqlist(seqlist *seq,int

pos,int key)//從pos位置開始,查詢等於key的值,返回其下標

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

}return -1;

}bool deletpos(seqlist *seq,int

pos,int

*rtv)//刪除pos位置的值,存放在*rtv中

*rtv=seq->arry[pos];

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

seq->size--;

return true;

}bool delet(seqlist *seq,int

pos,int

*rtv)//刪除乙個從pos位置開始等於key的值

intindex=searchseqlist(seq,pos,key);

int tmp=0;

deletpos(seq,index,&tmp);

return true;

}bool getarryelem(seqlist *seq,int

pos,int

*rtv)//得到pos位置的值

*rtv=seq->arry[pos];

return true;

}int getlength(seqlist *seq)

void clear(seqlist *seq)

void show(seqlist *seq)

for(int i=0;isize;i++)

printf("\n");

}

順序表.cpp

#include "stdafx.h"

#include "seqlist.h"

int main()

seqlistprint(&seq);

//驗證查詢函式

intindex = searchseqlist(&seq, 0, 8);

printf("index==%d\n", index);

//驗證刪除pos位置函式

int tmp = 0;

deletepos(&seq, 6, &tmp);

printf("deletedata==%d\n", tmp);

seqlistprint(&seq);

//驗證刪除key值的函式

delete(&seq, 1, 3);

seqlistprint(&seq);

//驗證得到pos位置的值

int tmp1 = 0;

getarryelem(&seq, 2, &tmp1);

printf("getdata==%d\n", tmp1);

//驗證清理

clear(&seq);

return

0;}

動態:

seqlist.h

#pragma once

#define list_init_size 10

typedef struct sqlist

sqlist;

void initlist(sqlist *l);//初始化順序表

int listlength(sqlist *l);//順序表長度

bool insert(sqlist *l, int pos, int val);//在pos位置插入val值

int search(sqlist *l, int pos, int key);//查詢 key 值

bool deletepos(sqlist *l, int pos, int *rtv);//刪除 pos 位置的值

bool delete(sqlist *l, int pos, int key);//刪除乙個 從pos位置開始的key 值

void clear(sqlist *l);

void destroy(sqlist *l);

void show(sqlist *l);

seqlist.cpp

#include "stdafx.h"

#include "seqlist.h"

#include

#include

#include

#include

void initlist(sqlist *l)//初始化

l->elem=(int

*)malloc(list_init_size*sizeof(int));

l->usedsize=0;

l->size=list_init_size;

}static bool isfull(sqlist *l)

static void inc(sqlist *l)

//在pos位置插入val值

bool insert(sqlist *l,int

pos,int val)

if(isfull(l)

for(int i=l->usedsize-1;i>=pos;i--)

l->elem[pos]=val;

l->usedsize++;

return true;

}//查詢 key 值

int search(sqlist *l, int

pos, int key)

for (int i = pos; i < l->usedsize; i++)

}return -1;

}//刪除 pos 位置的值

bool deletepos(sqlist *l, int

pos, int

*rtv)

*rtv = l->elem[pos];

for (int i = pos; i < l->usedsize - 1; i++)

l->usedsize--;

return true;

}////刪除乙個 從pos位置開始的key 值

bool delete(sqlist *l, int

pos, int key)

intindex = search(l, pos, key);

int tmp = 0;

deletepos(l, index, &tmp);

return true;

}void clear(sqlist *l)

void destroy(sqlist *l)

void show(sqlist *l)

for (int i = 0; i < l->usedsize; i++)

printf("\n");

}

順序表.cpp

#include "stdafx.h"

#include "seqlist.h"

int main()

//insert(&l, 0, 10);

show(&l);

//驗證查詢函式

int index = search(&l, 0, 8);

printf("index==%d\n", index);

//驗證刪除pos位置函式

int tmp = 0;

deletepos(&l, 6, &tmp);

printf("deletedata==%d\n", tmp);

show(&l);

//驗證刪除key值的函式

delete(&l, 1, 3);

show(&l);

//驗證清理

clear(&l);

//驗證摧毀

destroy(&l);

return

0;}

順序表的基本操作實現

順序表的基本操作實現 在複習的時候順便寫寫 基本和書上的一樣 include include define ok 1 define error 0 define status int define maxsize 10000 typedef int elemtype 對順序表的定義 typedef ...

順序表基本操作的實現

一 實驗學時 2學時 二 實驗目的 三 實驗內容 順序表的建立 取指定元素 返回指定元素位置 順序表中插入新元素 刪除指定元素操作的實現 四 主要儀器裝置及耗材 五 實驗步驟 分析問題 寫出演算法 編制程式 上機除錯 分析結果 六 程式清單 include include include 要用exi...

c 實現順序表的相關操作

myarray.件 pragma once includeusing namespace std class myarray myarray.cpp include myarray.h 預設構造 myarray myarray 有參構造 引數 陣列容量 myarray myarray int cap...