問題 d: ds順序表之迴圈移位
時間限制: 1 sec 記憶體限制: 128 mb
題目描述
順序表的移位是迴圈移位,例如順序表:1,2,3,4,5,6。如果左移1位,即原來的頭元素移動到末尾,其它元素向左移1位,變成2,3,4,5,6,1。同理,如果右移1位,即原來的尾元素移動到頭,其它元素向右移1位,變成6,1,2,3,4,5。以下是移位的多個例子:
原資料:1,2,3,4,5,6
左移3位:4,5,6,1,2,3,與原資料對比
右移4位:3,4,5,6,1,2,與原資料對比
請編寫程式實現順序表的迴圈移位操作
輸入第1行輸入n表示順序表包含的·n個資料
第2行輸入n個資料,資料是小於100的正整數
第3行輸入移動方向和移動的位數,左移方向為0,右移方向為1
第4行輸入移動方向和移動的位數,左移方向為0,右移方向為1
輸出第一行輸出建立後,順序表內的所有資料,資料之間用空格隔開
第二行輸出第一次移位操作後,順序表內的所有資料,資料之間用空格隔開
第三行輸出第二次移位操作後,順序表內的所有資料,資料之間用空格隔開
樣例輸入
511 22 33 44 55
0 21 4
樣例輸出
11 22 33 44 55
33 44 55 11 22
44 55 11 22 33
#include
#include
#include
#include
using
namespace std;
#define ok 0
#define error -1
class
seqlist
~seqlist()
intlist_size()
;//獲取順序表的實際長度
intlist_insert
(int i,
int item)
;//插入乙個元素
void
list_sort()
void
list_display()
;void
list_display2()
cout << endl;
}void
list_display3()
cout << endl;
}void
dirlen2
(int dir,
int len)
}else}}
void
dirlen3
(int dir,
int len)
}else}}
};int seqlist::
list_size()
int seqlist::
list_insert
(int i,
int item)
for(
int q = size; q > i -
1; q--
) list[i -1]
= item;
size++
;return ok;
}void seqlist::
list_display()
cout << endl;
}int
main
(void
) p.
list_display()
;int direct,lenth;
cin >> direct >> lenth;
p.dirlen2
(direct, lenth)
; p.
list_display2()
; cin >> direct >> lenth;
p.dirlen3
(direct, lenth)
; p.
list_display3()
;return0;
}
DS順序表之迴圈移位
題目描述 順序表的移位是迴圈移位,例如順序表 1,2,3,4,5,6。如果左移1位,即原來的頭元素移動到末尾,其它元素向左移1位,變成2,3,4,5,6,1。同理,如果右移1位,即原來的尾元素移動到頭,其它元素向右移1位,變成6,1,2,3,4,5。以下是移位的多個例子 原資料 1,2,3,4,5,...
DS順序表之迴圈移位
題目問題 l ds順序表之迴圈移位 時間限制 1 sec 記憶體限制 128 mb 提交 657 解決 403 提交 狀態 討論版 題目描述 順序表的移位是迴圈移位,例如順序表 1,2,3,4,5,6。如果左移1位,即原來的頭元素移動到末尾,其它元素向左移1位,變成2,3,4,5,6,1。同理,如果...
字串 迴圈移位問題
字串迴圈移位問題是面試中比較容易遇到的,就是輸入乙個字串和乙個整數,原地輸出移位後的字串。不同的考官可能對程式的具體要求不同,這裡要求空間複雜度為o 1 這裡給出兩種解答方法。1 將移動n位看做 每次移動一位,共操作n次 這是一種化整為零的思維方法。只要能想到這一步,相信下面的 就不難寫出了 1 v...