链栈的学习(回文数)
来源:互联网 发布:网络电视华人台 编辑:程序博客网 时间:2024/05/20 11:27
思路: 1.先用arr1[]存入字符串 2.把arr1[]中的字符入栈 3.把栈中字符出栈并存入arr2[]中 4.比较arr与arr2,相同则是回文数,反之则不是----------#include<iostream>using namespace std;#define NULL 0 struct node{ char x ; struct node *next;};class stack{public: stack (); void Create_Stack (); void Push_Stack (); void Pop_stack (); void cmp (); int Get_length ();private: struct node *top; struct node *New_node; char arr1[20]; char arr2[20]; int length; int count1 ; int count2 ;};stack ::stack (){ top = NULL; New_node = NULL; length = count1 = count2= 0;}int stack::Get_length (){ return strlen(arr1);}void stack::Create_Stack (){ top = new node; top->x ='0'; top->next = NULL; cin>>arr1; //读入原数据存入arr1[]中;}void stack::Push_Stack (){ New_node = new node; New_node->x = arr1[count1] ; //把arr1[]中的数据入栈 count1++; New_node->next = top->next; top->next = New_node;}void stack::Pop_stack (){ struct node *p = top->next; //出栈把栈中数据输出到arr2[]; arr2[count2] = p->x; count2++; top->next = p->next; delete p;}void stack::cmp () //比较arr1[]和arr2[]是否相等{ int i = 0 ; for ( i ; i < strlen (arr1) ; i++) { if (arr1[i] != arr2[i]) break; } if (i == strlen (arr1)) cout<<"是回文数!!"<<endl; else cout<<"不是回文数!!!"<<endl;}int main (){ stack S; S.Create_Stack(); int i = 0; while (i < S.Get_length () )//将arr1中字符入栈 { S.Push_Stack (); i++; } i = 0; while (i < S.Get_length () ) //将栈中字符出栈并存入arr2 { S.Pop_stack (); i++; } S.cmp ();//比较arr1与arr2是否相等,并输出结果 system ("pause");}
0 0
- 链栈的学习(回文数)
- 栈(回文数)
- 回文/回文数的判断
- 回文质数问题(用生成回文数的方法)
- (C语言)回文数的判断
- 回文数的判定
- 回文数的生成
- 回文数的判断
- 回文数的形成
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 回文数的判断
- 最大的回文数
- 回文数的判定
- 特殊的回文数
- 回文数的判断
- 回文数的判断
- ecplise中tomcat插件
- 利用javadoc生成API文档
- POJ 2777 Count Color(位运算+线段树+lazy+区间更新)
- 网站前端技术学习 笔记
- allegro不规则焊盘制作
- 链栈的学习(回文数)
- 小马哥----高仿小米4 主板型号M168 拆机刷机机型图与开机界面识别图 多图展示
- 高质量编程的金玉良言——开放-封闭原则
- java内存回收机制
- Android handler最简单的用法
- Linux学习记录(7)Linux文件系统的挂载
- 排序算法之插入排序
- android.support.v7.internal.widget.ActionBarOverlayLayout could not be instantiated
- mysql create database 指定utf-8编码