莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理
          有了前一篇C#鏈表的實(shí)現(xiàn),實(shí)現(xiàn)棧和隊(duì)列易如反掌。

          棧,利用單向鏈表實(shí)現(xiàn):
          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();?
          ????????}
          ????}

          隊(duì)列的實(shí)現(xiàn),通過雙向鏈表實(shí)現(xiàn),對于環(huán)形數(shù)組的實(shí)現(xiàn)請參考《數(shù)組結(jié)構(gòu)之棧與鏈表》:
          ?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#實(shí)現(xiàn)棧和隊(duì)列  回復(fù)  更多評論   

          2011-09-24 14:14 by tb
          恩 不錯 很好
          主站蜘蛛池模板: 荔浦县| 东港市| 同心县| 铜山县| 汉川市| 新龙县| 邹平县| 宁夏| 包头市| 嵊州市| 安陆市| 清水河县| 东阳市| 遂溪县| 光泽县| 红河县| 泌阳县| 玛多县| 长兴县| 荆门市| 雷州市| 信阳市| 台东市| 辽阳县| 东兰县| 山东| 睢宁县| 宁晋县| 裕民县| 绥化市| 克什克腾旗| 浦城县| 克山县| 皮山县| 灵武市| 延寿县| 天等县| 汾阳市| 建始县| 聂荣县| 大洼县|