useless tips

データ構造が なかなか 理解できないので 発想を 変えてみる。
1. まず 元になる data file だけど、べつに 最初から 整理されてるわけではない <-あたりまえ。
2. 入力するのは 多くの場合、人間なんだから まちがって 当然である。
3. 個々のデータの まとまりを 行単位 - record - だとすると、新しく record を 追加するのは file の 最初か 最後であって 途中に 入れることは 通常 やらない。
4. 各 record に 入れる それぞれのデータ - field - を 入力するのも 人だから、その順序を まちがうことも あり得る。
というわけで data file は 原則として イジる必要はない。というより 触ってはいけない。データの追加は 時系列で file の 前か後に 収めていけば いいわけだ。
なにか その data file を 使って 作業するときに 初めて - 作業プログラムを かける前の 段階で - 整列 (sort) や 検索 (search) 等の アルゴリズムを 使った コードが 必要となる。
ということは 木構造 - tree - は このとき 考えても 遅くない。入力した field の 順序が 違っていたら その record 分だけ エラー表示させるようにすれば 訂正するのも むずかしくはない (はず)。
はじめから 木構造を 前提とした データ入力なんて よほど 特殊なケースに 違いない。
それに まちがって 入力するたびに やり直しを 命令されるのは 人に やさしくない。
最悪 data file を 破壊する おそれのあるときには 黙って - 記録だけ とっておいて - /dev/null にでも 放り込んでくれるのが 本来の プログラム設計である <-暴論。
駅に置いてある 最新の券売機や、銀行の 振込専用機の 使い勝手が 異常に悪いのは、プログラム自体の せいではなく、責任転嫁だけは 長けてる 発注元が 原因に違いない !
(なんだか 話が 違った方向に いってしまってる ... )