莊周夢蝶

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

          棧,利用單向鏈表實現(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();?
          ????????}
          ????}

          隊列的實現(xiàn),通過雙向鏈表實現(xiàn),對于環(huán)形數(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#實現(xiàn)棧和隊列  回復(fù)  更多評論   

          2011-09-24 14:14 by tb
          恩 不錯 很好
          主站蜘蛛池模板: 长沙县| 鹤庆县| 亳州市| 遵义市| 禹州市| 武乡县| 江西省| 蕲春县| 宁波市| 阿图什市| 资溪县| 武川县| 安丘市| 南投县| 呼玛县| 寿宁县| 丰顺县| 米脂县| 保亭| 南开区| 长子县| 正镶白旗| 卢氏县| 桓台县| 娱乐| 通渭县| 周口市| 滕州市| 清苑县| 贵港市| 大冶市| 额敏县| 日喀则市| 沅江市| 五台县| 柳江县| 唐海县| 青浦区| 淅川县| 蓬溪县| 昌吉市|