数据结构练习题:编写设计一个字符顺序栈,并实现回文(对称,如abba)字符串的判定

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:24:57
数据结构中编写此算法。
以偶数abba和奇数abcba为例帮忙写一下具体的算法代码

program cs;
const n=10000;
var
s:array[1..n] of char;
i,j:integer;
c:string;
begin
readln(c);
if (length(c) mod 2)<>0 then
begin
delete(c,(length(c) div 2)+1,1);
end;
//删去奇数个字符中间字符。

i:=0;j:=1;
while j<=length(c) do
begin
if i=0 then
begin
inc(i);
s[i]:=c[j];
inc(j);
end//栈空,则直接压栈。
else
begin
if s[i]=c[j] then
begin
dec(i);
inc(j);
end//栈顶元素与当前字符相同,就出栈。
else
begin
inc(i);
s[i]:=c[j];
inc(j);
end;//不同,就进栈。
end;
end;
if i=0 then writeln('True')
else writeln('False');//如果栈是空的,证明是回文。
end.
思路是对于奇数个字符,删去中间字符。
其余字符扫一个处理一个,s[]是栈,i是它的指针。
j是