| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 978 人关注过本帖
标题:双向链表是否对称
取消只看楼主 加入收藏
gaobaoqiang
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-12
收藏
 问题点数:0 回复次数:2 
双向链表是否对称
双向链表是否对称
搜索更多相关主题的帖子: 链表 
2006-05-12 17:21
gaobaoqiang
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-12
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
typedef struct DuLNode
{char data;
struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;
//建立双向循环链表
DuLinkList Create(void){
char ch;
DuLinkList head=(DuLinkList)malloc(sizeof(DuLNode));
DuLinkList s,r;
head->next=NULL;
head->prior=NULL;
r=head;
while((ch=getchar())!='\n'){
s=(DuLNode*)malloc(sizeof(DuLNode));
s->data=ch;
r->next=s;
s->prior=r;
r=s;
}
r->next=head;
head->prior=r;
return head;
}

//打印
void Print(DuLinkList head){
DuLinkList p;
for(p=head->next;p!=head;p=p->next)
printf("%c",p->data);
printf("\n");
}

//判断双向循环链表是否对称
int DuiChen(DuLinkList head){
DuLinkList p,q;
int i=1;
p=head->next;
q=p;
while(q->next!=head)
{
q=q->next;
i++;}
if(i<4&&p->data==q->data)
return 1;
if(i>=4){
while(q->next!=p){
if(q->data==p->data){p=p->next;
q=q->prior;}
else return 0;}
return 1;}
}


void main()
{int x;
DuLinkList head;
head=Create();
Print(head);
x=DuiChen(head);
printf("%d",x);
}

2006-06-08 16:17
gaobaoqiang
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-12
收藏
得分:0 

不好意思 我自己做出来了 还是要谢谢版主 已经运行通过

2006-06-08 16:19
快速回复:双向链表是否对称
数据加载中...
 
   



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

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