c語言 結構體 實現順序表

2021-10-10 01:23:06 字數 3796 閱讀 3429

先建立了這三個檔案:

seqlist.h標頭檔案是用來宣告,main.cpp檔案是主函式檔案,seqlist.cpp是用來實現函式。

seqlist.h**如下:

#ifndef _seqlist_h_

#define _seqlist_h_

#include

#include

#include

#define seqlist_init_size 8

// 容量大小,可以自己設定

typedef

int elemtype;

typedef

struct seqlist

seqlist;

void

initlist

(seqlist* list)

;// 初始化線性表

void

put_end

(seqlist* list,elemtype num)

;void

show_seqlist

(seqlist* list)

;// 顯示線性表

bool listempty

(seqlist* list)

;// 判斷線性表是否為空

void

listlength

(seqlist* list)

;// 顯示線性表的元素個數

void

getelem

(seqlist* list,

int i)

;// 檢視第i個元素

void

put_front

(seqlist* list,elemtype x)

;// 從最前端插入元素

void

delect_pos

(seqlist* list,

int x)

;// 刪除x位置的值

void

listinsert

(seqlist* list,

int x,elemtype num)

;//在x位置插入元素num

void

sort_list

(seqlist* list)

;// 排序

void

reserve_list

(seqlist* list)

;// 逆置

#endif

// !_seqlist_h_

main.cpp**如下:其他功能後續加上

#include

"seqlist.h"

intmain()

switch

(select)

break

;case2:

// 顯示順序表

show_seqlist

(&mylist)

;break

;case3:

// 判斷線性表是否為空,如果為空,則返回1,不為空,返回0

printf

("%d\n"

,listempty

(&mylist));

break

;case4:

listlength

(&mylist)

;break

;case5:

if(listempty

(&mylist)

)else

break

;case6:

// 從最前面放入元素,不過一次性只能插入乙個數

printf

("請輸入你要從最前面插入的元素:");

elemtype x;

scanf_s

("%d"

,&x)

;put_front

(&mylist,x)

;break

;case7:

printf

("請輸入要刪除位置:");

scanf_s

("%d"

,&num)

;delect_pos

(&mylist, num)

;break

;case8:

printf

("請輸入要插入的元素位置和數字");

int y;

scanf_s

("%d%d"

,&y,

&num)

;getchar()

;listinsert

(&mylist,y,num)

;break

;case9:

sort_list

(&mylist)

;break

;case10:

reserve_list

(&mylist)

;break

;default

:printf

("輸入錯誤,請重新選擇:\n");

break;}

}return0;

}

seqlist.cpp**如下:

#include

"seqlist.h"

// 初始化列表

void

initlist

(seqlist* list)

// 從尾部放入資料

void

put_end

(seqlist* list,elemtype num)

else

}// 顯示順序表

void

show_seqlist

(seqlist *list)

else

}printf

("\n");

}// 判斷順序表是否為空

bool listempty

(seqlist* list)

else

}// 顯示線性表的元素個數

void

listlength

(seqlist* list)

// 檢視第i個元素

void

getelem

(seqlist* list,

int i)

else

}// 從頭部放入元素

void

put_front

(seqlist* list, elemtype x)

else

list->base[0]

= x;

} list->size++;}

// 刪除某個位置的值

void

delect_pos

(seqlist* list,

int x)

else

} list->size--;}

// 在x(0開始)位置插入num元素

void

listinsert

(seqlist* list,

int x, elemtype num)

else

list->base[x]

= num;

list->size++;}

}// 從小到大排序(氣泡排序)

void

sort_list

(seqlist* list)}}

}// 順序表的逆置

void

reserve_list

(seqlist* list)

}

C語言 鍊錶 結構體

目的 1.編寫手機 薄管理程式,用結構體實現下列功能 1 手機 薄含有姓名 宅電 手機3項內容,建立含有上述資訊的 簿。2 輸入姓名,查詢此人的號碼。3 插入某人的號碼。4 輸入姓名,刪除某人的號碼。5 將以上功能分別用子函式實現,編寫主函式,可以根據使用者的需要,呼叫相應的子函式。建議用結構體和鍊...

資料結構 順序表(C語言實現)

順序表的定義是 把線性表中所有表項按照其邏輯順序依次儲存到從計算機儲存中指定儲存位置開始的一塊連續的儲存空間中。這樣,線性表中第乙個表項的儲存位置就是被指定的儲存位置,第i個表項 2 i n 的儲存位置緊接在第i 1個表項的儲存位置的後面。假設順序表中每個表項的資料型別為t,則每個表項所占用儲存空間...

C語言實現順序表 資料結構

include include 需求,寫乙個順序線性表,儲存乙個位址位置 define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 define true 1 define false 0 define ...