using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;//
namespace CStack
{
class Program
{
private ArrayList list;//集合
private int p_Index;//索引标志
/// <summary>
/// 构造器
/// </summary>
public Program() {
list = new ArrayList();
p_Index = -1;//没放数据前
}
/// <summary>
/// 获取元素个数
/// </summary>
public int count {
get { return list.Count; }
}
/// <summary>
/// 增加 入栈
/// </summary>
/// <param name="item"></param>
public void push(object item) {
list.Add(item);//自动放到末尾
p_Index++;//索引自加
}
/// <summary>
/// 提取
/// </summary>
/// <returns></returns>
public object pop() {
object obj = list[p_Index];//出栈
list.RemoveAt(p_Index);//删除
p_Index--;//
return obj;
}
/// <summary>
/// 清空
/// </summary>
public void clear() {
list.Clear();
p_Index = -1;
}
/// <summary>
/// 最后一个元素
/// </summary>
/// <returns></returns>
public object peek() {
return list[p_Index];
}
static void Main(string[] args)
{
Stack myStack = new Stack(30);
//Stack<string> myStack = new Stack<string>(30);
Program alist = new Program();//实例化一个栈
string ch;
string word = "awwa34";
bool ispalindrome = true;//是否为回文
for (int i = 0; i < word.Length; i++)
{
alist.push(word.Substring(i,1));//入栈
}
int pos = 0;
while (alist.count>0)
{
ch = alist.pop().ToString();//栈最后一个
if (ch!=word.Substring(pos,1))//word.Substring(pos,1)取word的指定索引开始一个字符
{
ispalindrome = false;
break;
}
pos++;
}
if (ispalindrome)
{
Console.WriteLine("是回文");
}
else
{
Console.WriteLine("不是回文");
}
Console.Read();
}
}
}
004_自己实现栈Stack
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、编译型与解释性语言 1.1 编译型语言 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来...