環状リスト

cyclic-list.png

実装の仕方

javaのLinkedListで頑張って実現しようとするよりかは、
こういうクラスを作ってしまった方がやりやすいでしょう

class ListNode {
    ListNode next;
    ListNode prev;
    Object data;
}

作るとき
class House{
        /**寄付金額。回収したら0になる*/
        int mDonation;
        /**家の住所*/
        int mAddress;
        public House mNext;
        public House mPrev;
        House(int donation,int id)
        {
            mDonation=donation;
            mAddress=id;
        }
    }
private House initCyclicList(int[] donations){
        //環状リストを作る
        int housenum=donations.length-1;
        //初期化
        House start=new House(donations[0],0);
        start.mNext=new House(donations[1],1);
 
        House prev=start;
        for(int i=1;i<donations.length-1;i++) {
            House house=prev.mNext;
            house.mNext=new House(donations[i+1],i+1);
            house.mPrev=prev;
            prev=house;
        }
        House end=prev.mNext;
        end.mNext=start;
        end.mPrev=prev;
        start.mPrev=end;
        return start;
    }

cyclic-graph-graphviz list

サポートサイト Wikidot.com cyclic-graph-graphvizlist