| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 750 人关注过本帖
标题:请教一下这道题目,大家给小生看看吧
只看楼主 加入收藏
shaobin188
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2011-10-13
结帖率:0
收藏
已结贴  问题点数:0 回复次数:5 
请教一下这道题目,大家给小生看看吧
题目是:假设称正读反读都相同的字符序列为回文。例如,‘abba’,‘abcba’都是回文, ‘ababab’不是回文,试编写程序判别从标准输入读入的以’@’为结束符的字符序列是否是回文。


这道题用栈和队列做应该会比较简单,所以我想用链表来做一下,用双向循环链表应该也很简单,但是貌似我链表建错了,刚学,不明白了,求指教
#include "stdafx.h"
#include "stdlib.h"
typedef char dataype;
typedef struct dnode
{
    dataype data;
    struct dnode *prior,*next;
}dlinklist;
void main(int argc, char* argv[])
{dlinklist *head,*s,*a,*p,*q;
int i=1;
head=(dlinklist*)malloc(sizeof(dlinklist));
a=head;
char ch;
printf("input data:\n");
ch=getchar();                 
while(ch!='@')                 
{
    s=(dlinklist*)malloc(sizeof(dlinklist));
    s->data=ch;
    a->next=s->prior;
    s->next=head;
    a=s;
    ch=getchar();
    i++;

}
s->next=head;
p=head->next;
q=head->prior;
if(i%2==0)
{ while (p->data==q->data)
    {
          p=p->next;
          q=q->prior;
          if(p->next=q)
          {
          printf("×?·?DòáD?a????");
          break;
          }




    }
   printf("×?·?DòáD2?ê?????");
}

else
{
while (p->data==q->data)
    {
          p=p->next;
          q=q->prior;
          if(p->next=q->prior)
          {
          printf("×?·?DòáD?a????");
          break;}
}
printf("×?·?DòáD2?ê?????");


}
}
搜索更多相关主题的帖子: 编写程序 include 
2011-10-13 15:34
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
收藏
得分:10 
判断回文应该用的数据结构是栈或队列……

斗不过疯子,不参与争论。
2011-10-13 17:33
shaobin188
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2011-10-13
收藏
得分:0 
我知道,但是我觉得用双向循环链表也是能够做的,head的next与prior相比较判断后,next的next再与prior的prior比较,我觉得思路应该是对的,然后程序应该有错,特别是建立的双向循环链表,应为运行后输入数据后显示内存错误
2011-10-13 18:03
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
收藏
得分:0 
先用循环链表写一个简单的程序

把程序的结构理清楚

再梳理一下思路

斗不过疯子,不参与争论。
2011-10-14 12:21
shaobin188
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2011-10-13
收藏
得分:0 
回复 4楼 丞相杀手
说实话我不会写双向循环链表,老师没说过,书上也没写出来过,所以想来问问,双向循环链表怎么建立的
2011-10-16 22:21
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
收藏
得分:10 
你可以使用带尾指针的双向循环列表;来判断回文; 很简单啊 个人感觉比队列好多了! 又快~ 就是空间使用率不高! 不过对于现在的计算机来说;空间一般不是问题@

君生我未生 我生君以老
2011-10-17 10:14
快速回复:请教一下这道题目,大家给小生看看吧
数据加载中...
 
   



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

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