1つの#include <iostreamの> 2の#include <cstdlib> 。3 。4 使用して 名前空間STD; 5 。6 構造体ノード{ 7。 int型のデータ、 8 ノード* 次に、 9 }; 10 。11 構造体ノードヘッド* = NULL; 12は 13である / * ため単一リンクリスト内のすべてのデータを破壊する* / 14 無効DestoryList() 15 { 16 頭= ; NULL 17。 COUT << " Destiryedリストの!" <<ENDL; 18である 出口( - 1 ); 19 } 20 / * 単独でリンクされたリストデータを除去する* / 21である ボイドClearList() 22は 、{ 23が ヘッド= NULL; 24 COUT << " クリア今!" << ENDL; 25 } 26 / *は、単一リンクされたリストが空であると判断/ * 27 BOOL ListEmpty() 28 { 29 のiF(ヘッド== NULL){ 30 COUTが<< " リストが空である" << ENDL。 31で 返す trueに; 32 } 33は、 戻り falseに、 34である } 35 / * 単一のリストを出力するための長さ* / 36 INT LISTLENGTH()を 37 [ { 38は IF(ヘッド== NULL){ 39 リターン 0 ; 40 } 41が 他{ 42であります INT I = 0 、 43である ノード* P; 44である P = ヘッドは、 45 ながら(P){ 46であります ++ I 、 47 P = P-> 次に; 48 } 49 リターンがI; 50 } 51である } 52は、 / * i番目の要素を見つけるため、その値を返し* / 53である INT getElem(INT I) 54は 、{ 55 IF(Iを<= 0 ){ 56は COUT << " 入力エラー" << ; ENDL 57である 出口( - 1 ); 58 } 59 INT J = 1。; 60 であれば(ListEmpty()){ 61 COUT << " リストが空です" 。 62 出口( - 1 )。 63 } 64 ノード*のP。 65 、P = ヘッド。 66 ながら(!J =私は&& p)を{ 67 、P = P-> 次。 68 J ++ ; 69 } 70 であれば(p == NULL){ 71 出口( - 1 )。 72 } 73 他{ 74 戻り P-> データ; 75 } 76 } 77 78 / * リストに新しい要素を追加する* / 79 空隙 ADDLIST(ノード* A) 80 { 81 IF(ヘッド== NULL){ 82 ヘッド= A、 83 A - >次に= NULL; 84 } 85 他{ 86 ノード* P、 87 P = ヘッド; 88 ながら(P){ 89 IF(P->次に== NULL){ 90 P->次に= A; 91である A->次に= NULL; 92 BREAK ; 93 } 94 P = P-> 次に; 95 } 96 } 97 } 98 / * リストを出力するためのすべての要素* / 99 ボイドがprintlist( ) 100 { 101 ノード* P、 102 P = ヘッド; 103 INT J = 0 ; 104 ながら(P){ 105 COUTのP - <<> <<データENDL; 106 J ++ ; 107 P = P-> 次に; 108 } 109 COUT << " このリストは持っている" << << J " 番号を" ; 110 } 111 / * 最初の数は、単一のリンクリストに戻される関係を満たします位置* / 112 INT LocateElem(int型 E、チャーC) 113 { 114 IF(C == ' = ' ){ 115 IF (ListEmpty()){ 1 16 出口( - 1 ); 117 } 118 INT i = 1 。 119 ノード*のP。 120 P = ヘッド。 121 一方、(P){ 122 であれば(P->データ== e)の{ 123 リターンI。 124 } 125 I ++は、 126 P = P-> 次。 127 } 128 } 129 } 130 INT メイン() 131 { 132 ノード* 。 133 のための(INTI = 1 ; I < 19 ; I ++ ){ 134 = 新しいノード。 135 A->データ= 私は、 136 ADDLIST(A)。 137 } 138 COUT << GetElem(18 )。 139 / * エラー発見するために* / 140 // ノード* pを。 141 // P =ヘッド。 142 // 一方(P){ 143 // COUT << P->データ<< ENDL。 144 // P = P->次。 145 // } 146 / * ENG * / 147 148 }
単一リンクリストを作成する場合、新しいノードを作成し、新規またはmallocの機能を使用することができるが、新しい非主要機能malloc関数で使用することができません。それは新しいアドレスを生成しませんので、接続のみがカバーするノードを作成するために、同じ記憶領域を持って使用されますが、実際に作成していないので、彼らが望んでいたときの注意の単一のリストを作成します。