标题:求助,关于顺序栈判断回文字符串的问题,请指教
只看楼主
lgxfxh
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-12-9
结帖率:0
已结贴  问题点数:10 回复次数:1 
求助,关于顺序栈判断回文字符串的问题,请指教
已知顺序栈的结构为:
      #define N 100
      struct {
                    char data [N];
                    int top;
                 }   s ;
      利用顺序栈的基本操作(设push (s, x)和pop (s)函数已存在,pop (s)函数返回栈顶元素),设计一个算法如下,判断一个字符串是否具有中心对称(即构成回文),若是则返回1,否则返回0。如:
ababbaba、abcba都是中心对称的字符串。填空完成算法。


  int symmetry (char str [ ])
  { int i, j, k;
     i=strlen (str);
     for (j=0; j<i/2; j++)
       push(s,str[j]);   ①
     if ( i % 2 ! = 0 )
       k= ( i+1) /2
    else
       k=i/2;
    for (j=k; j<i; j ++)
        if( str[j]!=pop(s) ) return 0;  ②
         return 1;
     }
其中①、②是填空,现根据答案已填上。问题是:哪位大神能给详细解释一下②?
搜索更多相关主题的帖子: 中心对称 字符串 元素 
2014-03-22 21:51
rmbking
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:36
专家分:157
注 册:2014-3-19
得分:10 
栈是先进后出的啊,pop的字符依次是从中间的一个到第一个,这些字符依次和从中间到最后一个字符比较,如果有一个不等,则不为回文,return 0,如果全相等的话,执行到最后,即for循环结束,只能返回 1,了解否
2014-03-23 00:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428985-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.509403 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved