判断中心对称
来源:互联网 发布:flir红外热像仪软件 编辑:程序博客网 时间:2024/04/29 23:08
//同一字符串,存入链表和栈,通过比较出栈元素和链表来判断是否中心对称#include<stdio.h>#include<malloc.h>#include<string.h>//定义单链表结构类型typedef char datatype;//datatype == chartypedef struct node //结点结构体,内有char类型data,结点指针*next{datatype data; struct node *next;}linklist; //linklist类型结点//定义顺序栈结构类型const int maxsize=40; //栈最大40typedef struct{datatype elements[maxsize]; int top;}stack;//栈内元素,栈顶//栈初始化,分配s内存空间,top置为-1void setnull(stack *&s){s=(stack*)malloc(sizeof(stack));s->top=-1;}//求单链表长度,p指向第一个结点,p不为空则一直进行n++,p移位int length(linklist *head){linklist *p=head->next; int n=0; while(p!=NULL){n++;p=p->next;} return n;}//输出单链表,一次输出一个void printlink(linklist*head){linklist *p=head->next; while(p!=NULL){ printf("%c",p->data); p=p->next; } printf("\n");}//建立具有头结点单链表void create(linklist *&head,datatype *str){datatype *p;p=str; linklist *s, *r; head=(linklist*)malloc(sizeof(linklist)); r=head; while(*p!='\0'){ s=(linklist*)malloc(sizeof(linklist)); s->data=*p; r->next=s; r=s; p++; } r->next=NULL;}//顺序栈入栈void push(stack*s,datatype e){s->top++;s->elements[s->top]=e;}//顺序栈出栈datatype pop(stack*s){datatype temp; s->top--;temp=s->elements[s->top+1];return temp;}//添加判字符串否中心对称算法int symmetry(linklist *head,stack *s){int i,a;datatype e;linklist *p=head->next; a=length(head)/2;if (length(head)%2==0){for (i=1;i<=a;i++){ e=p->data; push(s,e); p=p->next;} } else{ for (i=1;i<=a;i++){ e=p->data; push(s,e); p=p->next;}if (i==a+1){e=p->data;push(s,e);}} while (p){if(p->data!=pop(s)) return 0;else p=p->next;} return 1;}int main(){ linklist *head;stack *s; datatype str[80]; printf("输入字符串\n"); gets(str); create(head,str); printlink(head); setnull(s); if(symmetry(head,s)) printf("字符串\"%s\"中心对称\n",str); else printf("字符串\"%s\"不是中心对称\n",str);}
0 0
- 判断中心对称
- 判断字符串是否为“中心对称”的算法
- leetcode之判断中心对称二叉树
- 设单链表中存放n个字符,试设计一个算法,使用栈判断该字符串是否中心对称
- 第2章第1节练习题2 判断是否中心对称
- Symmetric Tree(中心对称树)
- 中心对称的不规则数独
- 中心对称PWM的配置方式
- 搜索中心对称的最大子矩阵
- 用栈实现中心对称符号的检验!一
- 数据结构通过链栈实现字符串中心对称匹配
- 针对PADS Layout把非中心对称封装的元件坐标导出所修改的Basic Script
- 将一个字符串以某个字符为中心对称交换(倒序输出字符串)
- 用队列实现形如a+b@b+a#的中心对称字符的检验
- 用栈实现形如a+b&b+a@的中心对称字符的检验
- HDU 4365 正方形格子涂色中心对称轴对称的涂法有多少种-思维-(矩阵坐标关系&快速幂取模)
- ?:判断
- ?:判断
- vsftpd:421 Service not available
- outlook pst ANSI和UNICODE编码问题
- 修复“本地连接”之批处理
- 一个B类地址,它的子网掩码为255.255.224.0,能划分多少个子网
- VMvare Server或ESXi Server加载虚拟机后显示为unknown(invalid)解决方案
- 判断中心对称
- OCSNG+GLPI 系统安装配置UTF-8版 支持中文
- 开启VMware ESXi 4.1 的unsupported mode和SSH
- VMware WorkStation 8 新增虚拟机上传功能
- RUNAS命令
- 域用户权限|安装软件
- MSA2000配置参考文档
- 几种系统下查看FC HBA卡信息的方法
- squid无法启动,解决一例。