莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          C#實現棧和隊列

          Posted on 2007-03-30 09:44 dennis 閱讀(2201) 評論(1)  編輯  收藏 所屬分類: C#歷程數據結構與算法
          有了前一篇C#鏈表的實現,實現棧和隊列易如反掌。

          棧,利用單向鏈表實現:
          public?abstract?class?AbstractStack
          ????{
          ????????
          public?abstract?Object?Pop();
          ????????
          public?abstract?void?Push(Object?obj);
          ????????
          public?abstract?bool?IsEmpty();
          ????????
          public?abstract?Object?Top();
          ????????
          public?abstract?void?Clear();
          ????}

          ????
          public?class?Stack?:?AbstractStack
          ????{
          ????????
          private?SList?list;
          ????????
          public?Stack()
          ????????{
          ????????????list?
          =?new?SList();
          ????????}
          ????????
          public?override?bool?IsEmpty()
          ????????{
          ????????????
          return?list.IsEmpty();
          ????????}
          ????????
          public?override?void?Push(Object?obj)
          ????????{
          ????????????list.Push(obj);
          ????????}
          ????????
          public?override?object?Pop()
          ????????{
          ????????????
          return?list.Pop();
          ????????}
          ????????
          public?override?object?Top()
          ????????{
          ????????????
          return?list.getTail();
          ????????}
          ????????
          public?override?void?Clear()
          ????????{
          ????????????list.Clear();?
          ????????}
          ????}

          隊列的實現,通過雙向鏈表實現,對于環形數組的實現請參考《數組結構之棧與鏈表》:
          ?public?interface?Queue
          ????{
          ????????
          bool?IsEmpty();
          ????????
          void?Enqueue(Object?obj);
          ????????Object?Dequeue();
          ????????Object?First();
          ????}

          ????
          public?class?ListQueue:Queue
          ????{
          ????????
          private?LinkedList?list;
          ????????
          public?ListQueue()
          ????????{
          ????????????list?
          =?new?LinkedList();
          ????????}

          ????????
          public?bool?IsEmpty()
          ????????{
          ????????????
          return?list.IsEmpty();
          ????????}

          ????????
          public?void?Enqueue(Object?obj)
          ????????{
          ????????????list.Push(obj);
          ????????}
          ????????
          public?Object?Dequeue()
          ????????{
          ????????????
          return?list.Shift();
          ????????}

          ????????
          public?Object?First()
          ????????{
          ????????????
          return?list.getHead();
          ????????}
          ????}


          評論

          # re: C#實現棧和隊列  回復  更多評論   

          2011-09-24 14:14 by tb
          恩 不錯 很好
          主站蜘蛛池模板: 兴业县| 济宁市| 甘泉县| 铁岭市| 锡林郭勒盟| 珠海市| 溧水县| 丁青县| 曲沃县| 左贡县| 新龙县| 红原县| 文化| 五寨县| 县级市| 南郑县| 沁水县| 巴彦淖尔市| 滕州市| 沛县| 鄂托克前旗| 肃南| 共和县| 汶川县| 大庆市| 清苑县| 紫金县| 象山县| 灌阳县| 扎赉特旗| 潮安县| 恭城| 荣昌县| 唐海县| 兴城市| 松滋市| 卫辉市| 安义县| 长寿区| 西华县| 万州区|