博客
关于我
回文判断
阅读量:339 次
发布时间:2019-03-04

本文共 1587 字,大约阅读时间需要 5 分钟。

#include <stdio.h>

#include <stdlib.h>
#define MAX 100
typedef struct //栈结构体
{
char e[MAX];
int top;
}SeqStack;

typedef struct NODE//队列结构体

{
char d;
struct NODE *next;
}LinkQN;

typedef struct //封装头指针为指针

{
LinkQN * front;
LinkQN *rear;
}LinkQ;

void InitStack(SeqStack *s) // 初始化顺序栈

{
s->top=-1;
}
int push(SeqStack *s,char ch)//入栈
{
if(s->topMAX-1)
return(0);
s->top++;
s->e[s->top]=ch;
return(1);
}
int pop(SeqStack *s,char *x)//出栈
{
if(s->top
-1)
return(0);
else
{
*x=s->e[s->top];
s->top–;
return(1);
}
}
void InitQuene(LinkQ *q) //链队列初始化
{
q->front=(LinkQN *)malloc(sizeof(LinkQN));
if( !q->front)
{
printf(“分配空间失败!”);
}
q->rear=q->front;
q->front->nextNULL;
}
int enter(LinkQ *q,char ch)//入队
{
LinkQN *np;
np=(LinkQN *)malloc(sizeof(LinkQN));
if( !np)
return(0);
np->d=ch;
np->next=NULL;
q->rear->next=np;
q->rear=np;
return(1);
}
int deleteq(LinkQ *q,char *c)//出队
{
LinkQN *p;
if(q->front
q->rear)
return(0);
p=q->front->next;
q->front->next=p->next;
if(q->rear==p)
q->rear=q->front;
*c=p->d;
free§;
return(0);
}

int huiwen(SeqStack s,LinkQ q)//回文判断

{
int flag=1,m=0,t=1;
int i;
char ch1,ch2,ch;
InitStack(&s);
InitQuene(&q);
printf(“请输入字符序列当输入字符@时输入结束:\n”);
while(ch!=’@’)
{
ch=getchar();
if(ch!=’ @’)
{
printf("%c",ch);
push(&s,ch);
enter(&q,ch);
m++;
}
}
printf("\n输入完成!\n");
getchar();
if(m%2)
{
if(s.e[m/2]=’&’)
{
for(int i=1;i<(m+1)/2;i++)
{
pop(&s,&ch1);
deleteq(&q,&ch2);
if(ch1 !=ch2)
flag=0;
}
}
else flag=0;
}
else flag=0;
return(flag);
}
void main()
{
SeqStack s;
LinkQ q;
int m;
m=huiwen(s,q);
printf(“ln”);
if(m)
printf(“该字符序列是回文序列!\n”);
else
printf(“该字符序列不是回文序列!\n”);
}

转载地址:http://aqoe.baihongyu.com/

你可能感兴趣的文章
聊聊我的五一小假期
查看>>
数据库三个级别封锁协议
查看>>
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
查看>>
Java求逆波兰表达式的结果(栈)
查看>>
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
查看>>
SLAM学习笔记-求解视觉SLAM问题
查看>>
普歌-允异团队-HashMap面试题
查看>>
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
查看>>
程序员应该知道的97件事
查看>>
create-react-app路由的实现原理
查看>>
Linux环境变量配置错误导致命令不能使用(杂谈)
查看>>
openstack安装(九)网络服务的安装--控制节点
查看>>
shell编程(六)语言编码规范之(变量)
查看>>
vimscript学习笔记(二)预备知识
查看>>
SSM项目中遇到Could not autowire. No beans of ‘XXX‘ type found.错误
查看>>
Android数据库
查看>>
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
查看>>
STM8 GPIO模式
查看>>
omnet++
查看>>
23种设计模式一:单例模式
查看>>