資料結構學習之 定長順序表

2021-09-22 05:56:55 字數 3142 閱讀 6851

定長順序表:

seqlist.**件

//.h

//定長順序表

#pragma once

#include #define size 10

typedef struct seqlist

seqlist;

typedef seqlist *pseqlist;

//初始化函式

void initseqlist(pseqlist plist); //pseqlist == seqlist*

//往plist的pos位置插入資料val

bool insert(pseqlist plist, int pos, int val);

//列印

void show(pseqlist plist);

//判空

bool isempty(pseqlist plist);

//bool isfull

////查詢,如果找到了就返回給下標,沒有找到的話就返回-1

int search(pseqlist plist, int key);

//刪除

bool deleteval(pseqlist plist,int key);

//刪除位置值

//rtval:輸出引數,儲存刪除成功的資料

bool deletepos(pseqlist plist, int pos, int *rtval);

//獲取pos下標所儲存的資料

bool getval(pseqlist plist, int pos, int *rtval);

//修改pos下標的資料

bool setval(pseqlist plist, int pos, int newval);

//獲取val的前趨值

bool getprival(pseqlist plist, int key, int *rtval);

//獲取val的後繼值

bool getnextval(pseqlist plist, int key, int *rtval);

//長度,即有效資料的個數

int getlength(pseqlist plist);

//清楚所有資料

void clear(pseqlist plist);

//銷毀該樹

void destory(pseqlist plist);

seqlist.c檔案

#include #include #include #include "seqlist.h"

//初始化函式

void initseqlist(pseqlist plist) //pseqlist == seqlist*

//往plist的pos位置插入資料val

bool insert(pseqlist plist, int pos, int val)

//插入新資料,移動pos之後的資料

for(int i = plist->length - 1; i >= pos; i--)

//插入新資料

plist->elem[pos] = val;

//更新有效資料的個數

plist->length++;

}//列印

void show(pseqlist plist)

printf("\n");

}//判空

bool isempty(pseqlist plist)

//bool isfull

////查詢,如果找到了就返回給下標,沒有找到的話就返回-1

int search(pseqlist plist, int key)

}return -1;

}//刪除

bool deleteval(pseqlist plist,int key)

return deletepos(plist, i, null);

}//刪除位置值

//rtval:輸出引數,儲存刪除成功的資料

bool deletepos(pseqlist plist, int pos, int *rtval)

if(rtval != null)

//移動資料

for(int i = pos; i < plist->length-1; i++)

plist->length--;

return true;

}//獲取pos下標所儲存的資料

bool getval(pseqlist plist, int pos, int *rtval)

if(rtval != null)

return true;

}//修改pos下標的資料

bool setval(pseqlist plist, int pos, int newval)

plist->elem[pos] = newval;

return true;

}//獲取val的前趨值

bool getprival(pseqlist plist, int key, int *rtval)

if(rtval != null)

return true;

}//獲取val的後繼值

bool getnextval(pseqlist plist, int key, int *rtval)

if(rtval != null)

return true;

}//長度,即有效資料的個數

int getlength(pseqlist plist)

//清楚所有資料

void clear(pseqlist plist)

//銷毀該樹

void destory(pseqlist plist)

main.c

#include #include "seqlist.h"

int main()

show(&seq);

deleteval(&seq,5);

show(&seq);

insert(&seq,3,30);

show(&seq);

clear(&seq);

show(&seq);

return 0;

}

資料結構學習之 不定長順序表

不定長的順序表 h pragma once include define init size 10 typedef struct dseqlist dseqlist typedef dseqlist pdseqlist 初始化函式 void initdseqlist pdseqlist plist ...

資料結構,定長順序表

typedef struct seqlist 定長順序表 seqlist,pseqlist 44 初始化順序表ps void initseqlist pseqlist ps pseqlist seqlist ps length 0 有效資料個數為0 判斷順序表是否為滿 static bool isf...

資料結構 不定長順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,所以順序表的儲存結構和陣列非常類似,而它最顯要的特點就是邏輯位址和實體地址都相連。alterlist.h pragma once pragma once是乙個比較常用的c c 預處理指令,只要在標頭檔案的最開始加入這條預處理指令,就能夠保證標頭檔案只...