資料結構 線性表的順序儲存 儲存字元陣列練習

2021-10-04 21:59:14 字數 2640 閱讀 1320

#include

"stdafx.h"

#include

"malloc.h"

#include

"string.h"

#include

"stdio.h"

#define maxsize 1000

typedef

char elmetype;

typedef

struct seqlist

*list;

//順序表建立,並初始化

list seqlist_create()

//順序表的插入元素,返回值為判斷是否插入成功 0為成功 -1為順序表未建立或插入節點為空,-2為順序表已滿

intseqlist_insert

(seqlist *list,elmetype x,

int postion)

//如果順序表已滿

if(list->length>=maxsize)

//判斷如果postion插入位置比長度大時,將插入位置更正到順序表最後元素的後面

if(postion>list->length) postion=list->length;

//將插入點位置與後方的元素全部往後挪一位

for(

int i=list->length;i>postion;i--

)//將元素插入到騰出的位置

list->data[postion]

=x;//長度加1

list->length++

;return0;

}//順序表的長度,返回值返回順序表長度,-1為list沒有順序表未建立

intseqlist_length

(seqlist *list)

return list->length;

}//順序表的刪除元素,返回要刪除的值,當發生錯誤時返回為空

elmetype seqlist_delete

(seqlist *list,

int postion)

//要刪除的元素

elmetype elmptype=list->data[postion]

;for

(int i=postion+

1;ilength;i++

) list->length--

;//長度-1

return elmptype;

}//順序表的查詢指定元素,返回查詢到的值,當發生錯誤時返回為空

elmetype seqlist_select

(seqlist *list,

int postion)

//通過postion位置查詢順序表的值

elmetype elmetype=list->data[postion]

;return elmetype;

}//順序表的清空

void

seqlist_clear

(seqlist *list)

//給順序表所有值設定為空

memset

(list->data,0,

sizeof

(list->data));

//給順序表長度清空

list->length=0;

}//順序表的銷毀

void

seqlist_destory

(seqlist *list)

free

(list)

;//釋放順序表

return;}

void

main()

//查詢指定postion的字元

printf

("\n\n請輸入你所要查詢的元素節點index位置:");

scanf_s

("%d"

,&postion)

;char c=

seqlist_select

(list,postion);if

(c!=

null

)else

//刪除指定postion的字元

printf

("\n請輸入你所要刪除的元素節點index位置:");

scanf_s

("%d"

,&postion)

; c=

seqlist_delete

(list,postion);if

(c==

null

)printf

("\nindex為%d在順序表中的元素節點值為空值,刪除失敗"

,postion)

;//遍歷輸出順序表的值

printf

("\n刪除後的順序表:\n");

for(

int i=

0;i<

seqlist_length

(list)

;i++

)//順序表清空與銷毀

seqlist_clear

(list)

;seqlist_destory

(list)

;printf

("順序表清空並釋放!\n");

//清空輸入緩衝區

fflush

(stdin);

getchar()

;}

《資料結構 線性表》順序儲存

一 什麼是線性表?線性表定義 0個 或 多個 資料元素 有限 序列。序列 這個必須是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後驅。乙個元素只能有乙個前驅 後驅。有限 線性表必須是有限的,無限的只存在於數學中。線性表元素個數必須是 大於 0,當 n 0 時,稱為空表。二 線性表抽象...

資料結構 線性表順序儲存(順序表)

特點 線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素。作用 線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素 物理儲存的相鄰關係來反映 資料元素之間 邏輯上的相鄰關係 順序儲存的實現 一維陣列儲存順序表中的資料 缺點 大小固定,使用前需要分配位址,...

資料結構 線性表 順序儲存結構

1.線性表定義 線性表 list 零個或多個資料元素的有限序列。關鍵知識點 1.首先它是乙個序列,元素之間室友順序的 2.線性表強調的是有限的,元素個數是有限的 3.在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。其數學定義 若將線性表標記為 a1,ai 1 ai ai 1 a n 則表中的...