CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

帮忙改下这道题,是不是算法有些问题啊!谢谢.

楼主lovemotion(舒心小格子)2004-04-01 08:44:09 在 C/C++ / C语言 提问

帮忙改下这道题,是不是算法有些问题啊!谢谢  
  各位大峡快一点,我等着救命!  
  谢谢!  
  #include<stdio.h>  
  #include<stdlib.h>  
  typedef   char   Datatype  
  typedef   struct   dnode  
  {  
  Datatype   data;  
  struct   dnode   *   prior,*   next;  
  }dlinklist;  
  dlinklist   *initilize()  
  {  
    char   c;  
    DNODE   *head,*p,*q;  
    head=NULL;  
    r=NULL;  
    c=getchar();  
    while(ch!='\n')  
          {  
                  p=(linklist   *)malloc(sizeof(linklist));  
  p->data=ch;  
        if(head==NULL)  
  {head=p;  
            q=p;}  
  else  
  q->next=p;  
  p->prior=q;  
  q=p;  
                  c=getchar();  
          }  
                p->next=head;  
                head->prior=p;  
                return   (head);  
  }  
  main()  
  {  
    dlinklist   *p,*s,*q;  
    dlinklist   *initilize()  
    s=initilize();    
        int   j,m;j=1;  
        p=head;  
        p->prior=q->next;  
        q=p->prior;  
        while(p!=q   ||   p->next!=q   ||   n!=0)  
        {if(n=2m)  
      {  
        while(j!=((n/2)-1))  
        {q=q->prior;j++;}  
        if(p->data==q->data)  
        {   putchar(p->data);  
            putchar(q->data);}  
        else   return   (1)  
    p=p->next;  
            q=p->prior;}  
        }  
        if(p==q)  
        putchar(p->data);  
        else   if(p->next==q)  
        {   putchar(p->data);  
    putchar(q->data);  
        }  
   
  return   0;  
  } 问题点数:60、回复次数:8Top

1 楼lovemotion(舒心小格子)回复于 2004-04-01 08:51:40 得分 0

刚刚忘把题贴上去了!:)  
  题目如下;  
  判断循环双向链表表示的字符环是否是中心对称的,若不是给出标志,若是给出一个对称实例。  
  谢谢!Top

2 楼DragonBill(用户中文昵称------静观其变,以静制动)回复于 2004-04-01 09:02:12 得分 0

里面的error太多了...Top

3 楼lovemotion(舒心小格子)回复于 2004-04-01 09:20:39 得分 0

是啊!自己越改错误越多了!所以帮忙改一下了哦!  
  谢谢!Top

4 楼bky2003(beyond)回复于 2004-04-01 10:05:52 得分 0

实在   不知道谁写的这么菜的程序,   我顺手从书上抄了一个,在Turbo   C2.0调试通过.  
  程序运行时,输入一个字符串,如果字符串对称,显示   字符串   is  
  不对称显示   字符串   is   not  
  程序如下:  
  #include<stdio.h>  
  #include<stdlib.h>  
  typedef   char   Data;  
  typedef   struct   node{  
      Data     dat;  
      struct   node   *next,*prior;  
  }NODE,*dlinklist;  
    void   check(dlinklist   p){  
      if(p==NULL){  
        printf("cannot   allocat\n");  
        exit(0);  
      }  
    }  
    dlinklist   init(char   *pc){  
      dlinklist   head=NULL,p=head,q=head;  
      while(*pc){  
        if(head==NULL){  
          head=(dlinklist)malloc(sizeof(NODE));  
          check(head);  
          head->dat=*pc++;  
          head->next=NULL;  
          head->prior=NULL;  
          p=q=head;  
        }  
        else{  
          p=(dlinklist)malloc(sizeof(NODE));  
          check(p);  
          p->dat=*pc++;  
          p->next=head;  
          head->prior=p;  
          q->next=p;  
          p->prior=q;  
          q=p;  
        }  
      }  
      return   head;  
    }  
  void   main(){  
    char   str[50],*pc;  
    dlinklist   head,p,q;  
    int   result=0;  
    printf("Input   a   string:");  
    scanf("%s",str);  
    head=init(str);  
    for(p=head,q=head->prior;p->dat==q->dat;p=p->next,q=q->prior){  
      if(p->next==q||p->next==q->prior){  
        result=1;  
        break;  
      }  
    }  
    if(result)  
      printf("%s   is   ",str);  
    else  
      printf("%s   is   not   ",str);  
  }  
  Top

5 楼bky2003(beyond)回复于 2004-04-01 10:08:55 得分 0

顺便说一下,上面申请的空间没释放,  
    如果你想拿100分,把释放的部分补上.Top

6 楼lovemotion(舒心小格子)回复于 2004-04-01 14:42:44 得分 0

上一楼,谢谢你,傻傻问一句,“上面申请的空间没释放,  
    如果你想拿100分,把释放的部分补上.”什么意思?Top

7 楼bky2003(beyond)回复于 2004-04-14 09:45:48 得分 60

好久没看了,今天看看得分才发现,抱歉.  
  现在补上:  
  #include<stdio.h>  
  #include<stdlib.h>  
  typedef   char   Data;  
  typedef   struct   node{  
      Data     dat;  
      struct   node   *next,*prior;  
  }NODE,*dlinklist;  
    void   check(dlinklist   p){  
      if(p==NULL){  
        printf("cannot   allocat\n");  
        exit(0);  
      }  
    }  
    dlinklist   init(char   *pc){  
      dlinklist   head=NULL,p=head,q=head;  
      while(*pc){  
        if(head==NULL){  
          head=(dlinklist)malloc(sizeof(NODE));  
          check(head);  
          head->dat=*pc++;  
          head->next=NULL;  
          head->prior=NULL;  
          p=q=head;  
        }  
        else{  
          p=(dlinklist)malloc(sizeof(NODE));  
          check(p);  
          p->dat=*pc++;  
          p->next=head;  
          head->prior=p;  
          q->next=p;  
          p->prior=q;  
          q=p;  
        }  
      }  
      return   head;  
    }  
    /*释放链表*/  
    void   release(dlinklist   head){  
      dlinklist   p=head,q;  
      while(p!=NULL){  
          q=-p->next;  
          free(p);  
          p=q;  
      }  
    }  
  void   main(){  
    char   str[50],*pc;  
    dlinklist   head,p,q;  
    int   result=0;  
    printf("Input   a   string:");  
    scanf("%s",str);  
    head=init(str);  
    for(p=head,q=head->prior;p->dat==q->dat;p=p->next,q=q->prior){  
      if(p->next==q||p->next==q->prior){  
        result=1;  
        break;  
      }  
    }  
    if(result)  
      printf("%s   is   ",str);  
    else  
      printf("%s   is   not   ",str);  
    release(head);  
  }Top

8 楼lovemotion(舒心小格子)回复于 2004-04-14 18:26:20 得分 0

谢谢,呵呵,高手就是高手,谢谢Top

相关问题

  • 一道算法题
  • 一道算法题
  • 6道算法习题
  • 问一道算法题
  • 求教两道算法题
  • 算法问题
  • 算法问题
  • 算法问题~~~~~~~~
  • 算法问题
  • 算法问题

关键词

  • c++
  • pc
  • check
  • dlinklist
  • prior
  • head
  • 谢谢
  • dat
  • 字符串
  • 帮忙

得分解答快速导航

  • 帖主:lovemotion
  • bky2003

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo