⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 都是以前随手编写的笑程序:总的来说只有五个<回文游戏,层次遍历二叉树,猴子选大王,先序、中序、后序遍历的递归算法等等> 如果对你又帮助你就下来看看吧
💻 CPP
字号:
//小小回文游戏献丑了
#include<stdio.h>
#include<malloc.h>
#define maxsize 50
//******************************************************************// 回文问题
typedef struct Stack
{
	char *els;
	int top;
	int size;
}Stack;
void initStack(Stack &s)
{
	s.els=(char *)malloc(maxsize*sizeof(char));
	s.top=-1;
	s.size=maxsize;
}//构造栈
void push(Stack &s,char e)
{
	char *newbase;
	if(s.top>=s.size-1)
	{
		newbase=(char *)realloc(s.els,s.size+maxsize*sizeof(char));
		if(newbase)
		{
			s.els=newbase;
			s.size+=maxsize;
			s.top++;
			s.els[s.top]=e;
		}else printf("overflow!\n");
	}else{
		s.top++;
		s.els[s.top]=e;
	}
}//压栈
void pop(Stack &s,char &e)
{
	if(s.top==-1)	printf("Stack under flow!");
	else{
		e=s.els[s.top];
		--s.top;	
	}
}//弹栈
int stackEmpty(Stack s)
{
	return(s.top==-1);
}//判栈空

void main()
{
	int count,								// 串长度
		i=0,									
		f=1;								// 回文标志							
	char e=' ',a=' ';						
	Stack hui1,hui2;
	initStack(hui1);						// 出入栈
	initStack(hui2);						// 比较栈
	printf("请输入字符串:\n");
	scanf("%c",&e);
	while(e!='.')							// 以'.'结束
	{
		push(hui1,e);
		scanf("%c",&e);
		i++;
	}
	count=i;
	for(i=0;i<count/2;i++)					// 输入栈一半弹出入比较栈
	{
		pop(hui1,e);
		push(hui2,e);
	}
	if(count%2!=0) pop(hui1,e);				
	while(!stackEmpty(hui1)&&f)				// 比较
	{
		pop(hui1,e);
		pop(hui2,a);
		if(a!=e) f=0;						// 置回文表置
	}
	if(f)printf("\n字符串回文\n");
		else printf("\n字符串不回文\n");
	getchar();
	getchar();
}
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -