C# のデータ構造とアルゴリズムにおける線形リストの構築クラスの簡単な分析

C# のデータ構造とアルゴリズムにおける線形リストの構築クラスの簡単な分析

C# のデータ構造とアルゴリズムで線形リストを構築するためのクラスは何ですか? C# のデータ構造とアルゴリズムで線形リストを構築するためのクラスをどのように使用すればよいですか?

C# のデータ構造とアルゴリズムで線形テーブルを構築するクラスのコード使用法を見てみましょう。

  1. 公共 インターフェースIListDS﹤T﹥
  2. {
  3.     を取得します。
  4.      voidクリア();
  5.     ブール型IsEmpty();
  6.     ブールIsFull();
  7.      void Append(T 項目);
  8.      void挿入(T 項目、 int i);
  9. T 削除( int i);
  10. T GetElem( int i);
  11.     文字列Locate(T 値);
  12.  
  13. }
  14.  
  15. 公共 クラスTList﹤T﹥ : IListDS﹤T﹥
  16. {
  17.     プライベートT[]_list;
  18.     プライベート 整数_len;
  19.     プライベート 整数_lastOne;
  20.  
  21.     パブリックT this [ int長さ]
  22. {
  23.         取得{ _list[長さ]を返す;}
  24.          _list[長さ] = 値を設定します
  25. }
  26.  
  27.     公共  intリスト
  28. {
  29.         取得{ _lastOneを返します; }
  30. }
  31.  
  32.     公共  int最大サイズ
  33. {
  34.         取得{ _lenを返す; }
  35.         設定{ _len = 値; }
  36. }
  37.  
  38.     パブリックTList( intサイズ)
  39. {
  40. _list =新しいT[サイズ];
  41. _len = サイズ;
  42. _lastOne = -1;
  43. }
  44.  
  45.     公共  int長さを取得する()
  46. {
  47.          _lastOne + 1を返します
  48. }
  49.  
  50.     公共 ブール型IsEmpty()
  51. {
  52.          (_lastOne == -1)の場合
  53. {戻る 真実; }
  54.         それ以外 
  55. {戻る 間違い; }
  56. }
  57.  
  58.     公共  voidクリア()
  59. {
  60. _lastOne = -1;
  61. }
  62.  
  63.     公共 ブールIsFull()
  64. {
  65.          (_lastOne == _len - 1)の場合
  66. {戻る 真実; }
  67.         それ以外 
  68. {戻る 間違い; }
  69. }
  70.  
  71.     公共  void追加(T アイテム)
  72. {
  73.          (IsFull()の場合
  74. {
  75.             投げる 新しいArgumentOutOfRangeException( "リストがいっぱいです!" );
  76. }
  77. _list[+_lastOne] = 項目;
  78. }
  79.  
  80.     公共  void挿入(T 項目、 int i)
  81. {
  82.          (IsFull()の場合
  83. {
  84.             投げる 新しいArgumentOutOfRangeException( "リストがいっぱいです!" );
  85. }
  86.          (i < 0 || i > _len)の場合
  87. {
  88.             投げる 新しいArgumentOutOfRangeException( "位置エラー!" );
  89. }
  90.  
  91.          (i == _lastOne)の場合
  92. {
  93. _list[+_lastOne] = 項目;
  94. }
  95.         それ以外 
  96. {
  97.              ( int j = i; j < _len - 1; j++)の場合
  98. {
  99. _list[j + 1] = _list[j];
  100. }
  101. _list[i] = 項目;
  102. }
  103. +++ 最後;
  104. }
  105.  
  106.     パブリックT 削除( int i)
  107. {
  108. T t =デフォルト(T);
  109.         空の場合()
  110. {
  111.             投げる 新しいArgumentNullException( "T" , "リストが空です!" );
  112. }
  113.          (i < 0 || i > _lastOne)の場合
  114. {
  115.             投げる 新しいArgumentOutOfRangeException( "T" , "位置がエラーです!" );
  116. }
  117.          (i == _lastOne)の場合
  118. {
  119. t = _list[_lastOne - 1];
  120. }
  121.         それ以外 
  122. {
  123. t = _list[_lastOne];
  124.              ( int j = i; j < _lastOne; j++)の場合
  125. {
  126. _list[j] = _list[j + 1];
  127. }
  128. }
  129. --_lastOne;
  130.          tを返します
  131. }
  132.  
  133.     パブリックT GetElem( int i)
  134. {
  135.         空の場合()
  136. {
  137.             投げる 新しいArgumentNullException( "T" , "リストが空です!" );
  138. }
  139.          (i < 0 || i > _len)の場合
  140. {
  141.             投げる 新しいArgumentOutOfRangeException( "位置がエラーです!" );
  142. }
  143.  
  144.          _list[i]を返します
  145. }
  146.  
  147.     公共 文字列Locate(T値)
  148. {
  149.         空の場合()
  150. {
  151.             投げる 新しいArgumentNullException( "T" , "リストが空です!" );
  152. }
  153.         整数i = 0;
  154.          (i = 0; i < _len; i++)の場合
  155. {
  156.              if (value.Equals(_list[i]))
  157. {
  158.                 壊す;
  159. }
  160. }
  161.          (i >= _len)の場合
  162. {
  163.             戻る  "-1" ;
  164. }
  165.          i.ToString()を返します
  166. }
  167. }

C# データ構造とアルゴリズムで線形リストを構築するクラスで線形リストを呼び出す操作:

  1. TList﹤文字列﹥ TL =新しいTList﹤文字列﹥(5) { };
  2.  
  3. TL.Append( "A" );
  4.  
  5. TL.Append( "B" );

間違いがあれば議論して訂正してください。

これで、C# データ構造とアルゴリズムで線形リストを構築するクラスの紹介は終わりです。C# データ構造とアルゴリズムで線形リストを構築するクラスの学習に役立つことを願っています。

<<:  C# のデータ構造とアルゴリズムにおけるキューの簡単な分析

>>:  C# データ構造とアルゴリズムのシーケンス テーブルの簡単な分析

ブログ    

推薦する

変革のトレンド: ジェネレーティブ AI とソフトウェア開発への影響

人工知能の出現により、ソフトウェア開発の継続的な発展が加速しています。この強力なテクノロジーは、ソフ...

ドローンの脅威と脆弱性評価に関する簡単な説明

[[411760]] Vol.1 背景ドローンの開発は大きな技術的進歩です。ドローンは、娯楽や商業用...

...

機械学習の公平性研究は正しい方向に進んでいるのでしょうか?

機械学習における公平性に関する研究は本当に正しい方向に進んでいるのでしょうか?人工知能の発展に伴い、...

起業の触媒としての AI: AI が提供できるものと提供できないもの

AI は、その潜在的パワーにもかかわらず、ビジネスを前進させるイノベーションの創出や推進において補助...

このモデルは数十万ドルの費用がかかり、数え切れないほどのプロジェクトを導いたのに、使用されたネガティブサンプルがゼロだったことが判明したのですか?

今日の人気のディープラーニング モデルはブラック ボックスであるとよく言われます。つまり、入力を与え...

マイクロソフトの「Office の新時代」イベント プレビューでは AI が紹介される: 新しい描画アプリ、ゲーム フレーム レートの向上など

マイクロソフトは3月8日、北京時間3月22日午前1時にオンライン新製品発表会を開催することを決定した...

パラメータ調整器、ここを見てください!ディープラーニングのトレーニング効率を向上させる2つのコツ

[[343402]] 1. トレーニングのボトルネックはどこですか? GPU 使用率が低い: モデル...

ChatGPT の新たな脆弱性: 個人のプライバシーを暗唱してトレーニング データを漏洩する制御不能状態、OpenAI が修正、まだ機能している

ChatGPTの最新の脆弱性が明らかになり、たった1つの文でトレーニングデータがそのまま漏洩してしま...

...

1.4GB 未満のビデオ メモリで 10,000 フレームのビデオをセグメント化します。コードは現在オープン ソースです。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ディープニューラルネットワークを使用してNER固有表現抽出の問題を解決する

この記事は次のように構成されています。固有表現抽出 (NER) とはどのように識別しますか? cs2...

ルカン氏は、今後10年間の研究計画に関する62ページの論文を発表した。AI自律知能

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...