当前位置:编程学习 > C#/ASP.NET >>

自定义堆栈(回文检测)

[csharp] 
using System; 
using System.Collections; 
 
namespace CStack 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            CStack alist = new CStack(); 
 
            string ch; 
            string word = "上海自来水来自海上"; 
            bool isPalindrome = true; 
 
            for (int x = 0; x < word.Length; x++) 
            { 
                alist.Push(word.Substring(x,1)); 
            } 
 
            int pos = 0; 
 
            while (alist.Count > 0) 
            { 
                ch = alist.Pop().ToString(); 
                if (ch !=word.Substring(pos,1)) 
                { 
                    isPalindrome = false; 
                    break; 
                } 
                pos++; 
            } 
 
 
            Console.WriteLine(isPalindrome); 
        } 
    } 
 
    public class CStack 
    { 
        private int p_index; 
        private ArrayList list; 
 
        public CStack() 
        { 
            list = new ArrayList(); 
            p_index = -1; 
        } 
 
        public int Count 
        { 
            get { return list.Count; } 
        } 
 
        public void Push(object item) 
        { 
            list.Add(item); 
            p_index++; 
        } 
 
        public object Pop() 
        { 
            if (0 > p_index) 
            { 
                return null; 
            } 
            object obj = list[p_index]; 
            list.RemoveAt(p_index); 
            p_index--; 
            return obj; 
        }  
 
        public void Clear() 
        { 
            list.Clear(); 
            p_index = -1; 
        } 
 
        public object Peek() 
        { 
            if (p_index < 0) 
            { 
                return null; 
            } 
 
            return list[p_index]; 
        } 
    } 

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,