判断字符串是否为对称--双链表
来源:互联网 发布:js获取选择框的值 编辑:程序博客网 时间:2024/05/13 12:24
判断字符串是否对称
算法思想:
- 从键盘中输入字符串,存放在数组中
- 将数组中元素依次摘下,尾插入法,插入到双链表中
- 分别定义指针从双链表头尾开始读取,比较对应的值
#include <stdio.h>#include <stdlib.h>#include<conio.h>typedef int ElemType; typedef struct DNode{ ElemType data; struct DNode *prior; struct DNode *next; }DNode; void CreateListR(DNode * &L,char a[],int n){ //尾插法建立双链表 DNode *s , *r; int i; //L为双链表的头结点L = (DNode *)malloc(sizeof(DNode));//申请头结点L->next = NULL;r = L;r->next = NULL; //将字符串数组元素 尾查法依次插入到双链表中for(i=0;i<n;i++){ s= (DNode *)malloc(sizeof(DNode));s->data = a[i]; r->next = s; s->prior=r; r=s; } L->prior=s; r->next=L; } int JudgeSym(DNode * &L){ DNode *p , *q; //p为头节点的先驱p=L->prior; //q为头节点的后继q=L->next; while(p!=q){ if(p->data!=q->data) return 0; else{ p=p->prior; q=q->next; } } return 1; } void Destroy(DNode *&L){ DNode *pre = L, *p = L->next; while(p!=L){ delete(pre); pre=p; p=p->next; } delete(pre); }int main(){ DNode *L; int n=0; char a[100]; printf("请输入字符串的长度\n");scanf("%d",&n);getchar();printf("请输入字符串\n");for(int i=0;i<n;i++)//输入后立即从控制台取字符 无需换行a[i] = getche();printf("\n");CreateListR(L,a,n); if(JudgeSym(L)==1) printf("双链表首尾对称\n");else printf("双链表首尾不对称\n");Destroy(L); return 0; }
阅读全文
0 0
- 判断字符串是否为对称--双链表
- 1305判断是否为对称字符串
- 判断字符串是否对称
- 判断字符串是否对称
- 判断字符串是否对称
- 判断字符串是否对称
- 判断字符串是否对称
- 判断字符串是否对称
- 黑马程序员-判断字符串是否为对称字符串
- 判断输入的字符串是否为回文(对称)字符串
- 利用顺序栈判断一个字符串是否为对称串
- 判断是否为对称的字符串(回文数)
- 判断是否为对称矩阵
- 判断一个字符串是否对称
- Ruby 判断字符串是否对称
- 判断一个字符串是否对称
- 判断一个字符串是否对称
- 判断一个字符串是否是对称字符串
- 二叉树的建立与遍历【数据结构实验报告】
- java中的构造方法
- 基于TCP传输的粘包问题
- spring boot框架学习6-spring boot的web开发(2)
- SpringBoot34-springboot应用监控-http,JMX,SSH
- 判断字符串是否为对称--双链表
- 慕课网:Linux 达人养成计划<1> 系统分区
- TensorFlow创建变量
- 2017.11.6 开始我的博客生涯
- Python高级编程-如何判断字符串a是否是以字符串b开头或结尾?
- 「设计模式」JavaScript
- mongodb安装及数据上传
- Generate Parentheses
- POJ 3041 Asteroids题解