タイトル説明
注文テーブルクラスを確立することを含む属性:配列、実際の長さ、(1000セット)の最大長さ
このクラスには、次のメンバ関数があります。
コンストラクタ:シーケンステーブルを初期化実施。
データmultiinsert(INT I、整数nは、複数の挿入 INT項目[]) 機能、 i番目の位置に実装し、アレイからの連続したN個のデータ項目を挿入する、すなわち、複数のデータIは位置から挿入されています。
私の位置を削除開始の複数のデータmultidel複数の(INT I、INT N)機能、実現i番目の位置から、n個の連続削除データ、すなわち、データを削除します。
主な機能テストライトシーケンステーブルクラス。
エントリー
行1、すなわち実際の長さ、最初のn個有するN個の入力データを表し; Nデータ入力が続きます
iは、インサートの開始位置を示し、次いでkはk個の入力データを表すがあるが挿入され、次に入力されたデータをK 2第一の入力線
ライン3は、第1の入力I削除開始の位置を示し、その後削除されるkはk個の入力データを表します
輸出
注文テーブルは、シーケンステーブルの実際の長さとデータを含む、データの間の空間によって分離されました
作成された出力の最初の行の内容のテーブルのうえご注文
第二の出力線を連続的に順番挿入目次の後に行われます
出力ライン3は、継続的に内容を削除順序のテーブルの後に行われます
サンプル入力
6 11 22 33 44 55 66 2 99 3 88 77 4 5
サンプル出力
6 11 22 33 44 55 66 9 11 99 88 77 22 33 44 55 66 4 11 99 88 66
プロンプト
#include <iostreamの> 使用して 名前空間STD; の#define OK 0 の#defineエラー-1 クラスSeqList { プライベート: INT *リスト; // 素子アレイのint MAXSIZE; // 順序テーブル最大長のintサイズ; // の順序テーブル実際の長公衆: SeqList() { MAXSIZE = 1000年; サイズ = 0 ; 一覧 = 新しい新しいINT [MAXSIZE]; } SeqList(INT nは、INT * P) { MAXSIZE = 1000年。 リスト = 新しい int型[MAXSIZE]; サイズ = N。 以下のために(INT iが= 0 ; N I <; I ++ ) リストには、[I] = P [i]は、 } 〜SeqList() { 削除[]リスト。 } INT list_size() { 戻りサイズ; } INT list_insert(INT I、int型の項目) { 場合(I < 1 || i>のサイズ+ 1 ) { COUT << " エラー" << ENDL。 リターンエラー。 } INT T = I- 1 。 用(INT J =サイズ- 1 ; J> = T; j-- ) { リスト[J + 1 ] = リスト[J]。 } リスト[T] = 項目。 サイズ ++ ; 返却OK。 } int型list_del(INT I) { 場合(I < 1 || i>のサイズ) { COUT << " エラー" << ENDL。 リターンエラー。 } INT T = I- 1 。 用(INT J = T; J <、サイズ1、J ++ ) { リスト[J] =リスト[J + 1 ]。 } サイズ - 。 返却OK。 } INT list_get( INT I) { 場合(I < 1 || i>のサイズ) { COUT << " エラー" << ENDL。 リターンエラー。 } INT T = I- 1 。 リターンリスト[T]; } ボイドlist_display() { COUT <<サイズ<< " " 。 以下のために(INT iが= 0 ; I <サイズ; I ++ ) COUT <<リスト[I] << 「 N) coutの << てendl; } INT multiinsert(INT I、整数 nは、INTの項目[]) { 場合(I < 1 || i>のサイズ+ 1 ) リターンエラー。 用(int型のカウント= 0 ;カウント<N;カウント++ ) { list_insert(I、項目[N - 1 - カウント])。 } を返すOK。 } INT multidel(INT I、INT { もし(I < 1 || i>のサイズ|| I + N- 1 > サイズ) リターンエラー。 用(int型のカウント= 0 ;カウント<N;カウント++ ) { list_del(I)。 } を返すOK。 } }。 int型のmain() { int型、nは cinを >> N; int型 * P = 新しい INT [N]; 用(INT iは= 0 ; I <N I ++ ) { CIN>> P [I]を、 } SeqList L(N、P)。 L.list_display(); int型のインデックス。 CIN >>インデックス>> N; INT * Q = 新しい INT [N]。 以下のために(INT iが= 0 ; I <N I ++ ) { CIN >> Q [I]を、 } であれば(L.multiinsert(インデックス、N、Q)=!エラー) L.list_display(); CIN >>インデックス>> N; もし(!L.multidel(インデックス、N)= エラー) L.list_display(); 削除[] pは、 削除[] Q。 リターン 0 ; }