俺が単方向リストを自分で実装したのは中学生の頃だったが双方向はなかなかバグが取れなかった
今思うとダラダラ長ったらしくコーディングして分割が不十分だったし単体テストをしてなかったからだな
ややこしいことをややこしいまま実装するのは誰でも大変
上手な人はパフォーマンスより読みやすさを優先しつつ確実に動く小さな部品を作ってそれを組み立ててるよ

当時は「どんなプログラムでも必ずバグがある」と言われてたしセグフォでアプリが落ちるのなんて普通すぎて誰も気にしなかった
オブジェクト志向と単体テストが普通になってから世の中変わったわ