PTA線性表 鍊錶插入與刪除

2021-10-03 13:12:48 字數 2127 閱讀 8798

本題要求實現帶頭結點的單鏈表插入操作,插入成功返回1,否則返回0。

函式介面定義:

int insert_link ( linklist l,

int i,elemtype e)

;

l是單鏈表的頭指標,i為插入位置,e是插入的資料元素,插入成功返回1,否則返回0。

裁判測試程式樣例:

#include

#include

typedef

int elemtype;

typedef

struct lnode

lnode,

*linklist;

linklist create()

;/* 細節在此不表 */

void

print

( linklist l)

;int insert_link ( linklist l,

int i,elemtype e)

;int

main()

else

return0;

}void

print

(linklist l)

}/* 請在這裡填寫答案 */

輸入格式:

輸入資料為三行,第一行是若干正整數,最後以-1表示結尾(-1不算在序列內,不要處理)。所有資料之間用空格分隔。第二行資料是插入位置,第三行資料是被插入元素值。

輸入樣例:

123

456-

12100

輸出樣例:
1

100234

56

答案:
int insert_link ( linklist l,

int i,elemtype e)if(

!p||j>i-1)

return

0;

s=(linklist)

malloc

(sizeof

(lnode)

);

s->data=e;

s->next=p->next;

p->next=s;

return1;

}

本題要求實現刪除單鏈表的第i個元素結點,刪除成功返回1,否則返回0。

函式介面定義:

int delete_link ( linklist l,

int i)

;

l為單鏈表的頭指標,i為刪除結點的序號

裁判測試程式樣例:

#include

#include

typedef

int elemtype;

typedef

struct lnode

lnode,

*linklist;

linklist create()

;/* 細節在此不表 */

void

print

( linklist l)

;int delete_link ( linklist l,

int i)

;int

main()

else

return0;

}void

print

(linklist l)

}/* 請在這裡填寫答案 */

輸入格式:

輸入資料為兩行,第一行是若干正整數,最後以-1表示結尾(-1不算在序列內,不要處理)。所有資料之間用空格分隔。第二行資料是刪除位置。

輸入樣例:

123

456-

13

輸出樣例:
124

56

答案:
int delete_link ( linklist l,

int i)if(

!(p->next)

||j>i-1)

q=p->next;

p->next=q->next;

e=q->data;

free

(q);

return1;

}

鍊錶插入 線性表

題目描述 線性表 已知一單鏈表,從第二個結點至表尾遞增有序,設a1輸入 輸入長度n 7 輸入資料 4 1 2 3 6 8 9 輸出1 2 3 4 6 8 9 樣例輸入 511 7 8 9 10 樣例輸出 7 8 9 10 11 分析 此題,考察鍊錶的插入。基本思想只要是判斷,在插入。include ...

線性表與鍊錶

線性表線性表是最基本 最簡單 也是最常用的一種資料結構。優點 記憶體占用少,查詢快,增刪慢。增刪慢的原因是,在中間新增乙個元素,其他所有的元素需要向後挪。耗能高所以慢。陣列,佇列和棧。佇列 queue 一種特殊的線性表,先進先出 fifo 只能刪除表的前端,只能新增到表的尾端。棧 stack 一種運...

線性表 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...