SCAU 8580 合併鍊錶

2021-10-05 00:08:39 字數 1896 閱讀 5074

8580 合併鍊錶

時間限制:1000ms **長度限制:10kb

提交次數:3724 通過次數:2077

題型: 程式設計題 語言: g++;gcc

description

線性鍊錶的基本操作如下:

#include

#include

#define error 0

#define ok 1

#define elemtype int

typedef int status;

typedef struct lnode

lnode,*linklist;

status listinsert_l(linklist &l, int i, elemtype e)

if (!p || j > i-1) return error; // i小於1或者大於表長

s = (linklist)malloc(sizeof(lnode)); // 生成新結點

s->data = e; s->next = p->next; // 插入l中

p->next = s;

return ok;

} // linstinsert_l

status listdelete_l(linklist &l, int i, elemtype &e)

if (!(p->next) || j > i-1) return error; // 刪除位置不合理

q = p->next;

p->next = q->next; // 刪除並釋放結點

e = q->data;

free(q);

return ok;

} // listdelete_l

設計乙個演算法將兩個非遞減有序鍊錶a和b合併成乙個新的非遞減有序鍊錶c。

輸入格式

第一行:單鏈表a的元素個數

第二行:單鏈表a的各元素(非遞減),用空格分開

第三行:單鏈表b的元素個數

第四行:單鏈表b的各元素(非遞減),用空格分開

輸出格式

第一行:單鏈表a的元素列表

第二行:單鏈表b的元素列表

第三行:合併後單鏈表c的元素列表

輸入樣例

612 24 45 62 84 96

415 31 75 86

輸出樣例

list a:12 24 45 62 84 96

list b:15 31 75 86

list c:12 15 24 31 45 62 75 84 86 96

#include

#include

#define error 0

#define ok 1

#define elemtype int

using

namespace std;

typedef

int status;

typedef

struct lnode

lnode,

*linklist;

intloadlink_la

(linklist &l)

}printf

("\n");

return ok;

}int

loadlink_lb

(linklist &l)

}printf

("\n");

return ok;

}int

createlink_l

(linklist &l,

int n)

return ok;

}int

main()

else

}while

(!p&&q)

while

(p)}

SCAU 18925 試卷排序(雙向鍊錶)

18925 試卷排序 雙向鍊錶 description 老師要將n張試卷重新排序,每張試卷都有編號為1 n,採取如下的方法 先將編號1的試卷放進佇列,剩下從第2張到第n張依次放入佇列,放入的時候老師會把編號i的試卷插入到編號為x試卷之前或之後 x輸入格式 第1行為乙個正整數n,表示了有n張試卷。第2...

SCAU 8581 線性鍊錶逆置

description 線性鍊錶的基本操作如下 include include define error 0 define ok 1 define elemtype int typedef int status typedef struct lnode lnode,linklist status l...

SCAU 資料結構練習 8577 合併順序表

題目本身沒有難度,都是固定的模板套用,理解了,就會了。順序表的基本操作 如下 include include define ok 1 define error 0 define list init size 100 define listincrement 10 define elemtype in...