首页 > 编程知识 正文

栈与队列实验,阐述栈与队列数据结构的概念及其特点

时间:2023-05-05 08:56:17 阅读:198877 作者:1506

大学程序实验.数据结构.栈和队列的应用一.判断"回文"问题 0 目录3 栈和队列的应用3.1 判断"回文"问题3.1.1 题目3.1.2 源码1.1.3 下载 2 下一章

0 目录 3 栈和队列的应用 3.1 判断"回文"问题 3.1.1 题目

问题描述:所谓回文,是指从前向后顺读和从后向前倒读都一样的字符串。例如,did; pop; I was able elba saw I 等等。
实验要求:利用栈结构判断一个字符串是否是“回文”。

3.1.2 源码 /************************************************************************ 头文件包含***********************************************************************/#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"/************************************************************************ 本地宏定义***********************************************************************/#define VALUE 10#define MAX 50#define OK 1#define ERROR 0typedef int Status;typedef char SElemType;typedef struct{SElemType data[MAX];int top;}SqStack; /********************************************************************** 函 数 名 : main* 函数功能 : 主函数* 参数列表 : * 函数输出 : *********************************************************************/Status main(){void StackMenu();Status Push(SqStack *s,SElemType e);SElemType Pop(SqStack *s);Status Palindromice(SElemType array[]);SElemType array[VALUE];StackMenu();while(1){ printf("请输入一节字符串:");gets(array);if(array[0]!=''){ int Re=Palindromice(array); if(Re==1){ printf("该字符串是回文.n");} else{ printf("该字符串不是回文.n");}} else{ printf("该字符串不是回文.n");}printf("n");}return OK;}/********************************************************************** 函 数 名 : StackMenu* 函数功能 : 目录函数* 参数列表 : * 函数输出 : *********************************************************************/void StackMenu(){printf("========回文判断========n");}SqStack * InitStack(){SqStack *s;s=(SqStack *)malloc(sizeof(SqStack));s->top=-1;return s;}/********************************************************************** 函 数 名 : Push* 函数功能 : 压栈函数* 参数列表 : * 函数输出 : *********************************************************************/Status Push(SqStack *s,SElemType e){if(s->top==MAX-1){printf("栈满!n"); return ERROR; }else{s->top++;s->data[s->top]=e;}return OK;}/********************************************************************** 函 数 名 : main* 函数功能 : 弹栈函数* 参数列表 : * 函数输出 : *********************************************************************/SElemType Pop(SqStack *s){SElemType value;if(s->top==-1){printf("栈空!");return 'e';} else{value=s->data[s->top];s->top--;return value;}}/********************************************************************** 函 数 名 : main* 函数功能 : 回文函数* 参数列表 : * 函数输出 : *********************************************************************/Status Palindromice(SElemType array[]){int i; SqStack *s;s=InitStack();int Stack_LEN=strlen(array);SElemType e;for(i=0;i<Stack_LEN/2;i++){ Push(s,array[i]);}if(Stack_LEN%2){i++;}while(i<Stack_LEN){e=Pop(s);if(e==array[i]){ i++;}else{return ERROR;break;}}return OK;} 1.1.3 下载

链接地址: 3.1_栈与回文.CPP

2 下一章

博客地址: 大学数据结构实验(三.栈和队列的应用二)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。