問題 b: ds單鏈表–結點交換
時間限制: 1 sec 記憶體限制: 128 mb
題目描述
用c++實現含頭結點的單鏈表,然後實現單鏈表的兩個結點交換位置。
注意不能簡單交換兩個結點包含資料,必須通過修改指標來實現兩個結點的位置交換
交換函式定義可以參考:
swap(int pa, int pb) //pa和pb表示兩個結點在單鏈表的位置序號
swap (listnode * p, listnode * q) //p和q表示指向兩個結點的指標
輸入第1行先輸入n表示有n個資料,接著輸入n個資料
第2行輸入要交換的兩個結點位置
第3行輸入要交換的兩個結點位置
輸出第一行輸出單鏈表建立後的所有資料,資料之間用空格隔開
第二行輸出執行第1次交換操作後的單鏈表資料,資料之間用空格隔開
第三行輸出執行第2次交換操作後的單鏈表資料,資料之間用空格隔開
如果發現輸入位置不合法,輸出字串error,不必輸出單鏈表
樣例輸入
5 11 22 33 44 55
1 42 6
樣例輸出
11 22 33 44 55
44 22 33 11 55
error
提示注意要用鍊錶實現哦!
#include
#include
#include
#include
using
namespace std;
class
listnode};
class
linklist
;linklist::
linklist()
linklist::
~linklist()
len =0;
head =
null;}
void linklist::
ll_display()
cout << endl;
}int linklist::
ll_insrt
(int i,
int item)
} now =
new listnode;
now-
>data = item;
pre-
>next = now;
now-
>next = cur;
len++
;return1;
}listnode* linklist::
ll_index
(int i)
}return cur;
}int linklist::
ll_get
(int i)
}return cur-
>data;
}int
main()
p.ll_display()
;for
(int i =
0; i <2;
++i)
else
p.ll_display()
;}else
}return0;
}
DS單鏈表 結點交換
題目 問題 b ds單鏈表 結點交換 時間限制 1 sec 記憶體限制 128 mb 提交 555 解決 385 提交 狀態 討論版 題目描述 用c 實現含頭結點的單鏈表,然後實現單鏈表的兩個結點交換位置。注意不能簡單交換兩個結點包含資料,必須通過修改指標來實現兩個結點的位置交換 交換函式定義可以參...
基礎資料結構 線性表 單鏈表的結點交換
實現單鏈表,含頭結點 屬性包括 data資料域 next指標域 操作包括 插入 刪除 查詢 注意 單鏈表不是陣列,所以位置從1開始對應首結點,頭結點不放資料輸入n 第1行先輸入n表示有n個資料,接著輸入n個資料 第2行輸入要插入的位置和新資料 第3行輸入要插入的位置和新資料 第4行輸入要刪除的位置 ...
單鏈表進行排序 通過節點交換,不通過值交換
原來我一直都不會對鍊錶進行排序,呵呵,比較菜。今天下了很大的功夫學習對鍊錶的排序,和大家分享一下!對鍊錶的排序主要有兩種方法 一 只交換節點中的元素,不改變鍊錶的順序。二 直接交換節點,不改變節點中的元素。其中交換節點是最麻煩的,稍不注意就會出錯!而交換節點中的元素還是比較簡單的。用幾個swap 就...