アルゴリズム研究-16-


データ構造


->資料を格納するポケット(資料を格納する仕組み)
->目的に合ったポケットをどうデザインするかを重点的に考えましょう!
目標を達成するためにデータ構造を設計する能力を育成する

へんすう


->基本的なデータ構造

整列


->変数のリスト/配置、およびデータ構造
利点:最初の要素を直接知ることができます
欠点:要素の挿入/削除が困難

リンクリスト


->複数の変数を格納する別の方法
利点:エレメントの挿入/削除は、配列よりも高速です.
欠点:i番目の要素がわかりにくい

カプセル化


-->>リソース構造を実装する鍵!
  • のデータ構造を使用する人は、データ構造がどのように動作しているかを知る必要はありません.
    こうぞうたい
    ->実装パッケージ
  • 構造はブラックボックスを実装するために使用され、内部は隠され、外部にのみ使用方法が提供される.
  • 構造体定義タイプ:
  • ex>
    struct Point{
    	int x;
        	int y;
            int getSum(){
            	return x+y;
            }
        
    };
    
    // Point p;
    // p.getSum(); == p의 현재 x,y 값의 합을 리턴
    #include <stdio.h>
    
    
    struct Point{
      int x;
      int y;
      
      int getSum(){
        return x+y;
      }
    };
    
    
    int main() {
    
      Point p1, p2;
      
      p1.x = 1;
      p1.y = 2;
      
      p2.x = 3;
      p2.y = 4;
      
      printf("%d\n", p1.getSum());
      printf("%d\n", p2.getSum());
    
      return 0;
    }
    
    // main 안에서는 getSum의 내부가 어떻게 이루어져 있는지는 알 필요 없음 
    
    ポイントというデータ構造をstruct「定義」を使います!
    Pointという名前のデータ構造p 1,p 2「宣言」
    ->Pointというstructインスタンスp 1,p 2

    構造体を使う理由は?


    ->カプセル化のため

    典型的なデータ構造

  • スタック
  • キュー
  • ツリー
  • グラフ
  • どんな資料構造を使うかいつも考えています!