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

📄 main.c

📁 回文算法实现,代码已经验证
💻 C
字号:
#include "head.h"
void main(int argc,int *argv[])
{
	char  str[30];
    char  palindrome[30];
	JD    *phead = NULL;
	JD    ptemp;
	JD    *pointer = NULL;
	JD    *pnew    = NULL;
	JD    *ptop    = NULL;
	int   i,j;
	int   flag = 1;
	int   num;
	int   enable = 1;//回文字符标识

	phead = (JD*)malloc(sizeof(JD));
	phead->value = '\0';
	phead->next = NULL;



	do
	{
		menu();
		printf("请输入num:");
		scanf("%d",&num);
		printf("\n");
        


//	printf("/**************请输入你需要选择的功能****************/\n");
//	printf("\n");
//	printf("1:将数组压入堆栈\n");
//	printf("2:将堆栈数据输出\n");
//	printf("3:判断是否为回文字符串\n");
//	printf("0:退出\n");
//	printf("/******************欢迎下次继续使用******************/\n");

		switch(num)
		{
		case 0:
			{
				flag = 0;
				break;
			}
		case 1:
			{
				for(i = 0;palindrome[i] != '\0';i++)
				{
					
				    pnew = (JD*)malloc(sizeof(JD));
				    pnew->value = palindrome[i];
				    ptop = push(phead,pnew,ptop);

				}
				break;
			}
		case 2:
			{
			   printf("打印堆栈里面的数据:\n");
			   if(ptop !=NULL)
			   {

	               for(i = 1,pointer = ptop;pointer != NULL;pointer = pointer->next,i++)
				   {
		               printf("堆栈第%d层值:%c\n",i,pointer->value);

				   }
			   }
			   else
			   {
				   printf("栈空\n");
			   }
				break;

			}
		case 3:
			{
				for(i = 0;palindrome[i] != '\0';i++)
				{
					if(ptop != NULL)
					{
						ptemp.next = NULL;
					    ptemp.value = ' ';
					    ptop = pop(phead,&ptemp,ptop);
						if(ptemp.value != palindrome[i])
						{
							enable = 0;
						}
					}

				}
				if(enable == 0)
				{
				    printf("不是回文字符\n");
				}
				else
				{
					printf("是回文字符\n");
				}
				break;
			}
		case 4:
			{
				printf("请输入待测字符串:");
				fflush(stdin);
	            gets(str);
				enable = 1;


               //将字符串空格去除
   	           for(i = 0,j = 0;str[i] != '\0';i++)
			   {
		           if(str[i] != ' ')
				   {
		               palindrome[j++] = str[i];
				   }
			   }
	           palindrome[j] = '\0';

			   break;

			}
		
		default:
			{
				printf("号码出错!!!请重新输入:\n");
			}
		}




	}while(flag == 1);




}

⌨️ 快捷键说明

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