返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言怎么利用栈和队列实现回文检测功能
  • 944
分享到

C语言怎么利用栈和队列实现回文检测功能

2023-06-16 21:06:59 944人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“C语言怎么利用栈和队列实现回文检测功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么利用栈和队列实现回文检测功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下:#i

本文小编为大家详细介绍“C语言怎么利用栈和队列实现回文检测功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么利用栈和队列实现回文检测功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

具体代码如下:

#include<stdio.h>#include<malloc.h>//内存分配头文件#include<math.h>//在math.h中已定义OVERFLOW的值为3#define SIZE 100#define STACKINCREMENT 10#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef struct   //栈的结构体{  char a;} SElemType;typedef struct{  SElemType *base;  SElemType *top;  int stacksize;} SqStack;typedef struct //Qnode //队列的结构体{  char b;  struct QNode * next;} QNode,*QueuePtr;typedef struct // 链队列类型{  QueuePtr front;  // 队头指针  QueuePtr rear;  // 队尾指针} LinkQueue;//定义全局变量SqStack S;SElemType e;LinkQueue Q;QueuePtr p;char f;//栈操作Status InitStack(SqStack *S){  S->base=(SElemType *)malloc(SIZE*sizeof(SElemType));  if(!S->base) exit(OVERFLOW);  S->top=S->base;  S->stacksize=SIZE;  return OK;}Status Push(SqStack *S,SElemType e){  if(S->top-S->base>=S->stacksize)  {    S->base=(SElemType *)malloc((S->stacksize+STACKINCREMENT)*sizeof(SElemType));    if(!S->base) exit(OVERFLOW);    S->top=S->base+S->stacksize;    S->stacksize+=STACKINCREMENT;  }  *S->top++=e;  return OK;}Status Stackempty(SqStack S)//栈是否为空{  if(S.top==S.base)    return TRUE;  else    return FALSE;}Status Pop(SqStack *S,SElemType *e){  if(S->top==S->base) return ERROR;  *e=*--S->top;  return OK;}Status StackLength(SqStack S)//求栈的长度{  return (S.top-S.base);}//队列操作Status InitQueue(LinkQueue *Q){  Q->front=(QueuePtr)malloc(sizeof(QNode));  Q->rear=Q->front;  if(!Q->front) exit(OVERFLOW);  Q->front->next=NULL;  return OK;}Status EnQueue(LinkQueue *Q,char f){  p=(QueuePtr)malloc(sizeof(QNode));  if(!p) exit(OVERFLOW);  p->b=f;  p->next=NULL;  Q->rear->next=p;  Q->rear=p;  return OK;}Status DeQueue(LinkQueue *Q,char *f){  if(Q->front==Q->rear) return ERROR;  p=Q->front->next;  *f=p->b;  Q->front->next=p->next;  if(Q->rear==p)    Q->rear=Q->front;  free(p);  return OK;}Status QueueLength(LinkQueue Q){  int i=0;  p=Q.front;  while(Q.rear!=p)  {    i++;    p=p->next;  }  return i;}Status QueueEmpty(LinkQueue Q){  if(Q.front==Q.rear)    return TRUE;  else    return FALSE;}void main(){  int i,m;  char n,a[20];  InitStack(&S);  InitQueue(&Q);  gets(a);  for(i=0; a[i]!='&'; i++) ///////////    &前的数据进栈  {    e.a=a[i];    Push(&S,e);  }  for(i=i+1; a[i]!='\0'; i++) //////////   ‘ &'后的数据进入队列    EnQueue(&Q,a[i]);  if( StackLength(S)!=QueueLength(Q))    /////栈和队列的数据个数不一样    printf("NO!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  else    while(!Stackempty(S)&&!QueueEmpty(Q))///////栈和队列里还有数据    {      Pop(&S,&e);      m=e.a;      DeQueue(&Q,&f);      n=f;      if(m!=n)      {        printf("NO!!!!!!!!!!!!!!!!!!!!!!");        break;      }    }  if(m==n&&Stackempty(S)&&QueueEmpty(Q))    printf("YES!!!!!!!!!!!!!!!!!!!!!!");}

运行结果:

C语言怎么利用栈和队列实现回文检测功能

读到这里,这篇“C语言怎么利用栈和队列实现回文检测功能”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C语言怎么利用栈和队列实现回文检测功能

本文链接: https://lsjlt.com/news/285474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言怎么利用栈和队列实现回文检测功能
    本文小编为大家详细介绍“C语言怎么利用栈和队列实现回文检测功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么利用栈和队列实现回文检测功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下:#i...
    99+
    2023-06-16
  • C语言怎么实现栈和队列
    本文小编为大家详细介绍“C语言怎么实现栈和队列”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现栈和队列”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是栈栈:一种特殊的线性表,其只允许在固定的一端...
    99+
    2023-06-30
  • C语言栈和队列如何实现
    这篇文章主要讲解了“C语言栈和队列如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言栈和队列如何实现”吧!一、栈与队列以及双端队列的概念1.1 栈的概念及结构栈:一种特殊的线性表,...
    99+
    2023-06-30
  • Python双端队列怎么实现回文检测
    本文小编为大家详细介绍“Python双端队列怎么实现回文检测”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python双端队列怎么实现回文检测”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、双端队列双端队列 ...
    99+
    2023-06-26
  • C语言栈与队列怎么相互实现
    本篇内容介绍了“C语言栈与队列怎么相互实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、本章重点用两个队列实现栈用两个栈实现队列解题思路...
    99+
    2023-06-29
  • C++栈和队列怎么实现
    本篇内容主要讲解“C++栈和队列怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++栈和队列怎么实现”吧!栈的定义和实现#ifndef Stack_H  #...
    99+
    2023-06-17
  • C语言中用栈+队列实现队列中的元素逆置
    下面举例代码: 提到的Q是一个队列,S是一个空栈,实现将队列中的元素逆置的算法 #include<stdio.h> #define MaxSize 10 typedef ...
    99+
    2024-04-02
  • C语言循环队列与用队列实现栈问题解析
    目录循环队列题目描述题目链接思路分析代码实现用队列实现栈题目描述题目链接思路分析代码实现循环队列 循环队列: 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并...
    99+
    2024-04-02
  • C语言分别实现栈和队列详解流程
    目录什么是栈栈的结构图示栈的实现创建栈的结构体初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空栈的销毁什么是队列?队列的实现创建队列结构体初始化队列队尾入队列队头出队列...
    99+
    2024-04-02
  • C语言队列怎么实现
    今天小编给大家分享一下C语言队列怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。队列的实现基本概念队列:只允许在一端进...
    99+
    2023-06-29
  • C语言用栈模拟实现队列问题详解
    目录题目描述题目链接思路分析代码实现题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)。 你只能使用标准的栈操作...
    99+
    2024-04-02
  • 如何利用Redis和Rust语言实现异步任务队列功能
    如何利用Redis和Rust语言实现异步任务队列功能引言:在当今高并发的互联网应用中,异步任务队列是非常常见和实用的功能。它可以将耗时较长的任务从主线程异步处理,提高系统的吞吐能力和响应速度。本文将介绍如何利用Redis和Rust语言实现一...
    99+
    2023-10-22
    Rust redis 异步任务队列
  • C/C++利用栈和队列实现停车场管理系统
    目录纯c语言版包含的功能运行效果源码c++版包含的功能运行效果源码纯c语言版 包含的功能 1、停车功能 如果停车场满,能够暂时存放到便道内 2、开走车功能 将指定车开走后打印收据,便...
    99+
    2024-04-02
  • C语言数据结构进阶之栈和队列的实现
    目录栈的实现:一、栈的概念和性质二、栈的实现思路三、栈的相关变量内存布局图四、栈的初始化和销毁五、栈的接口实现:1.入栈2.出栈3.获取栈顶的数据4.获取栈的元素个数5.判断栈是否为...
    99+
    2024-04-02
  • C语言如何用顺序栈实现回文序列判断
    我是采用了两个栈值得比较大小判断得(可能比较浪费空间但是代码我感觉简单一点) 首先是定义一个栈的结构元素,由于是字符串类型就直接定义一个char的数组就可以:. typedef ...
    99+
    2024-04-02
  • C语言数据结构之栈与队列怎么相互实现
    本篇内容介绍了“C语言数据结构之栈与队列怎么相互实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、用对列实现栈题干要求:细节分析:队列是...
    99+
    2023-07-02
  • C利用语言实现数据结构之队列
    目录一、链队列二、链队的表示三、链队的基本操作1. 链队的初始化2. 链队的销毁3. 入队4. 出队四、顺序队列五、循环队列1. 初始化2. 求队列长度3. 入队4. 出队 前言: ...
    99+
    2024-04-02
  • C语言链式队列与循环队列怎么实现
    这篇文章主要介绍了C语言链式队列与循环队列怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言链式队列与循环队列怎么实现文章都会有所收获,下面我们一起来看看吧。队列的实现队列是一种先进先出(First ...
    99+
    2023-06-30
  • C#数据类型怎么实现背包、队列和栈
    本文小编为大家详细介绍“C#数据类型怎么实现背包、队列和栈”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#数据类型怎么实现背包、队列和栈”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基础编程模型和数据抽象把描...
    99+
    2023-06-30
  • 怎么用C语言实现链式栈
    这篇文章给大家分享的是有关怎么用C语言实现链式栈的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。堆栈的基本概念堆栈是只能在一端增删元素的表结构,该位置称为栈顶堆栈的基本运算是压入和弹出,前者相当于插入,而后者则是删...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作