堆栈应用之进制转换(参考严蔚敏数据结构)
来源:互联网 发布:项目管理信息系统 软件 编辑:程序博客网 时间:2024/06/05 16:34
#include<iostream>#include<malloc.h>using namespace std;#define STACKSIZE 7#define SIZEADD 3typedef int ElemType;typedef struct Stack{ElemType *pBottom; ElemType *pTop;int Stacksize;}Stack;void InitStack(Stack &S){S.pBottom = new ElemType[STACKSIZE];S.pTop = S.pBottom;S.Stacksize = STACKSIZE;}void DestroyStack(Stack &S){delete[]S.pBottom;S.pBottom = NULL;S.pTop = NULL;S.Stacksize = 0;}void ClearStack(Stack &S){S.pTop = S.pBottom;}bool StackEmpty(Stack S){if (S.pBottom == S.pTop)return true;elsereturn false;}int StackLength(Stack S){return(S.pTop - S.pBottom);}void Push(Stack &S, ElemType e){if (S.pTop - S.pBottom >= S.Stacksize){S.pBottom = (ElemType *)realloc(S.pBottom,(STACKSIZE + SIZEADD)*sizeof(ElemType));S.pTop = S.pBottom + S.Stacksize;S.Stacksize += SIZEADD;}*S.pTop++ = e;}void Pop(Stack &S, ElemType &e){if (StackEmpty(S))return;e = *--S.pTop;}void GetTop(Stack S, ElemType &e){if (StackEmpty(S))return;e = *(S.pTop - 1);}void Visit(ElemType e){cout << e << " ";}void TraverseAs(Stack S){ElemType *p = S.pBottom;if (StackEmpty(S))return;while (p < S.pTop){Visit(*p);++p;}cout << endl;}void TraverseDe(Stack S){ElemType *p = S.pTop;if (StackEmpty(S))return;while (p > S.pBottom){--p;Visit(*p);}cout << endl;}void Conversion(){ElemType data,e;Stack S;InitStack(S);cout << "Enter a number:";cin >> data;//进制待转化的十进制整数while (data){Push(S, data % 8);data /= 8;}while (!StackEmpty(S)){Pop(S, e);Visit(e);}}void Conversion1(){ElemType data, e;Stack S;InitStack(S);cin >> data;while (data){Push(S, data % 8);data /= 8;}TraverseDe(S);DestroyStack(S);}int main(void){Conversion1();return(0);}
0 0
- 堆栈应用之进制转换(参考严蔚敏数据结构)
- 新手学习数据结构与算法---堆栈的应用之进制转换
- 考研数据结构与算法之堆栈的使用(二)利用堆栈实现进制转换
- 【数据结构】栈应用之进制转换
- 数据结构栈应用之进制转换
- 堆栈的应用-进制的转换
- 数据结构之堆栈模拟应用(算法3.1)
- 数据结构之进制转换
- 堆栈的简单实现之二:进制转换方面的简单应用(C语言实现)
- 数据结构 栈的应用 进制转换
- 数据结构之SeqStack---堆栈应用---括号匹配问题
- 堆栈数据结构应用之括号匹配检查(算法3.2.2)
- 数据结构之堆栈
- java数据结构之堆栈
- 基本数据结构之堆栈
- 数据结构之堆栈操作
- 数据结构之堆栈
- 数据结构学习之堆栈
- 第九章--伪代码编程过程
- ACM Ball(挑战程序设计竞赛)
- Problem 2010
- Android Intent Action 一览表
- 第十章--使用变量的一般事项
- 堆栈应用之进制转换(参考严蔚敏数据结构)
- C高质量代码
- Redis教程
- 三大框架整合
- 点击事件(多击事件的实现)
- 将Cent0S 7的网卡名称eno16777736改为eth0
- 第十一章--变量名的力量
- C#”文件中的类都不能进行设计,因此未能为该文件显示设计器“处理办法
- SQl Server 常用函数