C言語でも多次元の動的配列使おうぜ!!

前回のブログの続きです

cagayakemiracl/Miracle-C · GitHub

宣言どうり動的配列作りました。

今のところIntクラスだけです

ただの線形リストなんですがちょっと変わってます。

こんな感じです

f:id:cagayake_miracl:20131231221818j:plain

 もうちょっとわかりやすくすると

f:id:cagayake_miracl:20131231222959p:plain

これで[3][3][3](緑、青、赤)配列です。実体があるのは赤だけで緑と青は各要素を指すためだけの空ノードです。ノードの手は一つ前の要素を指すprevと次の要素を指すnextと子ノードまたは自分自身を指すchildで構成されています。親ノードをさすポインタを作ってもよかったのですが面倒だし、いらないのでやめました。

 

Arrayクラスを実装したかったのですが全てのクラスが何かしらのデータ型を扱うクラスでありかつその多次元配列を実現するものとすればいらないのでないかと考えました。これの弱点は一つ一つのインスタンスが大きくなってしまうことです。でもArrayクラスの実現が難しいので我慢します。

あと手の数が少ないのはいいのですが,空ノードの分のメモリが非常に無駄です.ここをどうにかしたいです。

インスタンスメソッドは数は少ないし多次元配列に対応しているものもあまりありません
このあとそこらへんを修正していきたいです。冬休みはいろいろまだやる事があるのでこのくらいにしといて落ち着いたら再開したいと思います

 

来年もいい年でありますように