LIFO栈 ADT接口 实现十进制转其他进制
LIFO 接口 Stack.h
//LIFO 链栈初始化
void InitStack(Stack top){
//LIFO 链栈判断栈空
boolean StackKEmpty(Stack top){
//LIFO 链栈进栈
void Push(Stack top, ElemType x){
//LIFO 链栈出栈
ElemType Pop(Stack top){
//LIFO 链栈读取栈顶
ElemType GetTop(Stack top){
LIFO 接口 链表实现 LinkedStack.c
//LIFO 链栈初始化
void InitStack(Stack top){
top = NULL;
} //LIFO 链栈判断栈空
boolean StackKEmpty(Stack top){
if(top == NULL) return true;
else return false;
} //LIFO 链栈进栈
void Push(Stack top, ElemType x){
LinkedStack p;
p = malloc(sizeof *p);
p -> data =x;
p -> next = top;
top = p;
} //LIFO 链栈出栈
ElemType Pop(Stack top){
LinkedStack p;
ElemType x;
if(top == NULL){
printf("栈下溢错误!\n");
exit();
}
p = top;
x = p -> data;
top = top -> next;
free(p);
return x;
} //LIFO 链栈读取栈顶
ElemType GetTop(Stack top){
if(top == NULL){
printf("栈下溢错误! \n");
exit();
}
return top -> data;
}
LIFO 接口 数组实现 SeqStack.c
//LIFO 顺序栈 初始化
void InitStack(Stack s){
s -> top = -;
} //LIFO 顺序栈判断栈空
boolean StackEmpty(Stack s){
if(s -> top == -) return true;
else return false;
} //LIFO 顺序栈判断栈满
boolean StackFull(Stack s){
if(s -> top == MaxSize-) return true;
else return false;
} //LIFO 顺序栈进栈
void Push(Stack s, ElemType x){
if(s->top == MaxSize-){
printf("栈满溢出错误!\n");
exit();
}
s -> top++;
s -> data[s>top] = x;
} //LIFO 顺序栈出栈
ElemType Pop(Stack s){
if(StackEmpty(s){
printf("栈下溢错误!\n");
exit();
}
x = s->data[s->top];
s -> top--;
return x;
} //LIFO 顺序栈读取栈顶元素
ElemType GetTop(Stack s){
if(StackEmpty(s){
printf("下溢错误!\n");
exit();
}
return s -> data[s -> top];
}
进制转换程序 main.c
#include<stdio.h>
#include<stdlib.h>
#include<Stack.h> void transForm(int m, int n); int main(void){ printf("将十进制数转换为任意进制数实例:\n");
transForm(, );
transForm(, );
transForm(, );
transForm(, );
} void transForm(int m, int n){
int k;
int mm = m; Stack S;
InitStack(&S);
while(m != ){
k = m % n;
Push(S, k);
m /= n;
} printf("十进制数%d转换为%d 进制数为:",mm, n);
while(! StackEmpty(&S)){
k = Pop(S, k);
printf("%d", k);
}
putchar('\n');
}
LIFO栈 ADT接口 实现十进制转其他进制的更多相关文章
- LIFO栈 ADT接口 数组实现
LIFO 栈结构 typedef int ElemenType; struct seqStack{ ElemeType data[MaxSize]; int top; }; typedef struc ...
- LIFO栈 ADT接口 链表实现
LIFO 链栈结构 typedef int ElemType; struct node{ ElemType data; struct node* next; }; typedef struct nod ...
- 数据结构之【栈】+十进制转d进制(堆栈数组模拟)
其实这篇文章开出来主要是水文章%% %% 栈--后进先出的婊 特点:只能在某一端插入和删除的特殊的线性表 操作:进栈--PUSH->向栈顶插入元素 出栈--POP-->将栈顶元素删除 实现 ...
- 十进制转n进制
#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #defi ...
- ->code vs 1474 十进制转m进制
1474 十进制转m进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将十进制数n转换成m进 ...
- wikioi 1474 十进制转m进制
/*===================================== 1474 十进制转m进制 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=1 ...
- 十进制转为x进制的递归代码
十进制转为x进制的递归代码 #include <stdio.h> void fun(int n,int x) { ) return; else { fun(n/x,x); printf(& ...
- 1474 十进制转m进制
1474 十进制转m进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 将十进制数n转换成m进制数 m ...
- C++十进制到任意进制
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...
随机推荐
- Win10 mysql容器启动命令
docker run --name mysql -it -p : -e MYSQL_ROOT_PASSWORD=Hongfund5013 -e MYSQL_USER=hongfund_os -e MY ...
- MD5随机盐值生成法
public class Test3 { /** * 生成含有随机盐的密码 */ public static String generate(String password) { Random r = ...
- kernel3.13 针对 Vmware安装存在的问题解决
vthread-3| W110: Failed to build vmnet. Failed to execute the build command VMware module patches an ...
- 深入理解webpack打包机制
一.单入口文件如何打包 /src/single/index.js var index2 = require('./index2'); var util = require('./util'); con ...
- BZOJ 1012 最大数maxnumber 线段树
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1012 题目大意: 见链接 思路: 直接用线段树模拟一下就可以了. #include&l ...
- BZOJ1042:[HAOI2008]硬币购物(DP,容斥)
Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值的东西.请问每次有多少种付款方法. Input 第一 ...
- 随手练——洛谷-P1002 过河卒(动态规划入门)
题目链接:https://www.luogu.org/problemnew/show/P1002 题目还算良心,提醒了结果可能很大,确实爆了int范围, 这是一开始写的版本,用递归做的,先给地图做标记 ...
- 27、springboot整合RabbitMQ(1)
RabbitMQ整合 使用dockers下载带management的版本,该版本是带web界面的,可操作性比较强
- 20145216史婧瑶《Java程序设计》第五次实验报告
20145216 实验五<Java网络编程> 实验内容 1.掌握Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 实验要求 1.基于Java Socket实现安全传输 ...
- Loj_6282. 数列分块入门 6
Loj_6282 这个题目涉及到了块的重构,这里使用了\(\sqrt{n}\)次插入便重构的方法 讲重复的操作提出来做了函数 #include <iostream> #include &l ...