順序表的增刪查操作

2021-08-16 18:42:18 字數 3219 閱讀 4536

初始化

尾插 尾刪

頭插 頭刪

讀任意位置元素

修改任意位置元素

查詢指定元素值的下標

在任意位置插入元素

——————————————————————————————

seqlist.h

#pragma once     //防止標頭檔案重複包含

#include

#define seqlistmaxnum 1000 //陣列最大元素個數

typedef char seqlisttype; //重定義型別

typedef struct seqlist

seqlist;

void seqlistinit(seqlist* seq); //初始化順序表

void seqlistprint(seqlist* seq, char* ch); //列印順序表

void seqlistpushend(seqlist *seq, seqlisttype value);

void seqlistpopend(seqlist *seq); //尾部刪除順序表

void seqlistpushstart(seqlist *seq, seqlisttype value); //頭部插入順序表

void seqlistpopstart(seqlist *seq); //頭部刪除順序表

void seqlistpushposition(seqlist* seq, size_t pos, seqlisttype value); //在下標為pos處插入元素

void seqlistpopposition(seqlist* seq, size_t pos); //刪除下標為pos的元素

void seqlistsetlist(seqlist* seq, size_t pos, seqlisttype value); //修改下標為pos的元素

seqlisttype seqlistgetlist(seqlist* seq, size_t pos); //讀下標為pos的元素

size_t seqlistgetpos(seqlist* seq, seqlisttype value); //查詢value元素值的下標

seqlist.c

#include "seqlist.h"

#include

#include

//初始化順序表

void seqlistinit(seqlist* seq)

//列印順序表

void seqlistprint(seqlist* seq, char* ch)

printf("size = %ld\n\n", seq->size);

}//尾部插入元素

void seqlistpushend(seqlist *seq, seqlisttype value)

//尾部刪除元素

void seqlistpopend(seqlist *seq)

else

}//頭部插入元素

void seqlistpushstart(seqlist *seq, seqlisttype value)

seq->seqlistarr[0] = value; //頭部插入資料

++seq->size;

}}//頭部刪除元素

void seqlistpopstart(seqlist *seq)

else

--seq->size;

}}//在任意位置插入元素

void seqlistpushposition(seqlist* seq, size_t pos, seqlisttype value)

else

seq->seqlistarr[pos] = value;

seq->size++;

}}//刪除下標為pos的元素

void seqlistpopposition(seqlist* seq, size_t pos)

else

if (pos >= seq->size)

else

seq->size--;

}}//修改下標為pos的元素

void seqlistsetlist(seqlist* seq, size_t pos, seqlisttype value)

else

}//讀下標為pos的元素

seqlisttype seqlistgetlist(seqlist* seq, size_t pos)

else

}//查詢value元素值的下標

size_t seqlistgetpos(seqlist* seq, seqlisttype value)

}return -1;

}

test.c

//測試**

#include "seqlist.h"

#include

#include

//測試初始化順序表

void testseqlistinit()

//測試尾部插入元素

void testseqlistpushend()

//測試尾部刪除元素

void testseqlistpopend()

void testseqlistpushstart()

void testseqlistpopstart()

//測試在下標為pos處插入元素

void testseqlistpushposition()

//測試刪除下標為pos的元素

void testseqlistpopposition()

//測試修改下標為pos的元素

void testseqlistsetlist()

//測試讀取下標為pos的元素

void testseqlistgetlist()

//測試查詢value元素值的下標

順序表的增刪查改

今天來實現簡單的順序表地增刪查詢操作 1.在開始敲 前,首先要明確自己要幹嘛。2.然後開始構思自己所要實現什麼樣的功能。3.之後將之前構思的功能弄好框架。4.最後再將每個框架的內容補充上。標頭檔案 include pragma once include typedef int sldatatype ...

順序表的增刪查改

順序表實現 順序表是用一段實體地址連續的儲存單元依次儲存的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。靜態順序表 使用定長陣列儲存 動態順序表 使用動態開闢的陣列儲存 靜態順序表適用於確定知道需要存多少資料的場景。靜態順序表的定長陣列導致n定大了,空間開多了浪費,開少了不夠用。首先...

線性表 順序表的增 刪 查

include define max size 100 順序表的結構體定義 typedef struct sequence listsequence list 考試時常用 int a max size int n 不用結構體 找到遞增有序的sl中第乙個比x大的元素的下標 因為不改變sl內容所以是值傳...