資料結構練習題(順序表和單鏈表)C

2021-10-11 13:08:24 字數 2652 閱讀 4688

1、

程式設計實現順序表的各種基本運算,並在此基礎上設計乙個主程式,完成如下功能:

(1)初始化順序表;

(2)給定乙個整型資料元素,將此元素插入到順序表的第i個位置;

(3)刪除順序表中第i個位置的元素,利用e返回被刪除的元素。

#include

#include

#define ok 1

#define error 0

#define overflow -2

typedef

int elemtype;

typedef

int status;

//----- 順序表的順序儲存表示 -----

#define list_init_size 100

// 儲存空間的初始分配量

#define listincrement 10

// 儲存空間的分配增量

typedef

struct

sqlist;

//順序表

// 構造乙個順序表

status initsqlist

(sqlist &l)

// 判順序表是否為空表

status listempty

(sqlist l)

//順序表插入函式

status listinsert_sq

(sqlist &l,

int i ,elemtype e)

//順序表刪除元素函式

status listdelete_sq

(sqlist &l,

int i, elemtype &e)

//輸出順序表函式

void

outlist_sq

(sqlist l)

else

printf

("\n");

}//主函式

intmain()

}while

(cord<=4)

;return1;

}

2、

程式設計實現建立乙個單鏈表,並在此表中插入乙個元素和刪除乙個元素

(1)通過鍵盤讀取元素建立單鏈表;

(2)指定乙個位置,在此位置之前插入乙個新元素;

(3)指定乙個位置,刪除此位置元素。

#include

"stdio.h"

#include

"stdlib.h"

#define ok 1

#define error 0

typedef

int elemtype;

typedef

int status;

typedef

struct lnode lnode,

*linklist;

//以下是建立單鏈表

void

creatlist_l

(linklist &head)

printf

("\n單鏈表的建立成功!");

}//以下是輸出單鏈表

void

outputlist_l

(linklist l)

printf

("單鏈表是:");

while

(p )

printf

("\n");

}//在第 i 個元素之前插入乙個元素

status listinsert_l

(linklist l,

int i, elemtype e)

s=(lnode *

)malloc

(sizeof

(lnode));

s->data=e;

s->next=p-

>next;

p->next=s;

//請在此填寫**,將該演算法補充完整,參見課本和課件相關章節

return ok;

}// 刪除第 i 個元素

status listdelete_l

(linklist l,

int i, elemtype &e)

q= q-

>next;

e=q-

>data;

p->next=p-

>next-

>next;

//請在此填寫**,將該演算法補充完整,參見課本和課件相關章節

return ok;

}int

main()

else

printf

("插入元素失敗!\n");

break

;case3:

printf

("\n請輸入要刪除的資料元素的位置(如: 3)");

scanf

("%d"

,&i);if

(listdelete_l

(l,i,a)

)else

printf

("刪除位置錯誤,請重新執行!\n");

break

;case4:

exit(0

);}}

while

(cord<=4)

;return1;

}

來自課下作業

資料結構 順序表和單鏈表c

include using namespace std constexpr auto maxsize 100 constexpr auto error 0 constexpr auto ok 1 typedef int elemtype 順序表的儲存結構 typedef struct sqlist ...

資料結構 順序表和單鏈表

typedef struct sqlist sqlist,psqlist bool isfull psqlist psq bool isempty psqlist psq void initsqlist psqlist psq 初始化 bool insert psqlist psq,int pos,...

資料結構練習題

設pa,pb分別指向兩個帶頭結點的有序 從小到大 單鏈表。仔細閱讀如下的程式,並回答問題 1 程式的功能 2 s1,s2中值的含義 3 pa,pb中值的含義。include include typedef struct list list void exam list pa,list pb else...