/* ( n3.C ) NIHクラス・ライブラリ [ LinkedList ] 機能:線形リスト(重複要素を許す) LinkedList b リストを定義する。 LinkOb i(B) リスト用の要素をクラス(B)を用いて定義する。 b.add(i) リストに要素を入れる。 b.addFirst(i) リストの先頭に要素を追加する。 b.addLast(i) リストの終りに要素を追加する。 b.remove(i) 要素を除去する。 b.addAfter(i,j) 要素 i の後に j を挿入する。 *( b.first() ) リストの先頭の要素を取り出す。 *( b.last() ) リストの終りの要素を取り出す。 b.size() リストの大きさを取り出す。 b.removeAll() リストの要素を全てクリアする。 */ #include "Point.h" #include "LinkedList.h" #include "LinkOb.h" main() { // NIHCL の Point であることに注意 Point B(1,2); Point C(1,3); Point D(1,4); LinkOb bB(B); LinkOb bC(C); LinkOb bD(D); LinkedList b; // リストを b として定義する b.add(bB); // 要素を入れる b.add(bC); cout << "b = " << b << endl; b.addFirst( *new LinkOb(*new Point(1,0)) ); // リストの先頭に要素を追加する b.addLast(bD); // リストの終りに要素を追加する cout << "b = " << b << endl; b.remove(bC); // 要素を除去する。b.remove(*b[1]); でもよい b.addAfter(bB,bC); cout << "\nb = " << b << endl; cout << "b.first(): " << *(b.first()) << endl; cout << "b.last(): " << *(b.last()) << endl; cout << "b.size(): " << b.size() << endl; cout << "\nb[0]: " << *b[0] << endl; // b[0]: (1,1) b.removeAll(); // リストをクリアする } /* [結果] b = (1,2) (1,3) b = (1,0) (1,2) (1,3) (1,4) b = (1,0) (1,2) (1,3) (1,4) b.first(): (1,0) b.last(): (1,4) b.size(): 4 b[0]: (1,0) */