関数のオーダ記法についてまとめてみたの続きで、今回は、プログラミングで用いられるデータ構造についてめっちゃ頑張ってまとめました!!
基本のデータ構造
プログラミング言語がそもそも持っている原始的な構造を以下に書いときます。
これがないと始まらないってやつです。
変数
ある型(int, double, float, charなどなど)の値を、1つのセルに格納する仕組みのことです。
プログラミングしたことがある人にとっちゃ息をするレベルに等しい。
配列
同じ型の値をメモリ上の連続したセルに格納する仕組みのこと。
これも、基本。
ポインタ
ここで、プログラミングで詰む人が出てくるところです。
なれれば簡単!
セルの先頭アドレスを格納する仕組みです。
これだと、あまり意味が分からないと思うので、詳しく説明すると、
int x=5 、int *p っていうのがあるとすると、
p=&x とすることで、ポインタpにxのアドレスの値を格納するということです。
たぶんポインタが分からんて人は、ポインタ値とアドレスがごっちゃになってるからだと思います。例えば、さっきの例をc言語で、 printf(“%d”,*p)としたら、5 と表示されます。
この*pはポインタのpじゃなくて、変数としてpの中身を見るという意味でつかわれています。
詳しくは、別機会で。
連結リスト
ポインタを再帰的に用いて作る格納構造です。
イメージとしては、ある一つの格納場所に、次の格納場所の場所が書いてあって、それを追っていくことで、データを取り出していくというものです。
循環リストや双方向リストなどのいろいろな種類があります!