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接口 实现十进制转其他进制的更多相关文章

  1. LIFO栈 ADT接口 数组实现

    LIFO 栈结构 typedef int ElemenType; struct seqStack{ ElemeType data[MaxSize]; int top; }; typedef struc ...

  2. LIFO栈 ADT接口 链表实现

    LIFO 链栈结构 typedef int ElemType; struct node{ ElemType data; struct node* next; }; typedef struct nod ...

  3. 数据结构之【栈】+十进制转d进制(堆栈数组模拟)

    其实这篇文章开出来主要是水文章%% %% 栈--后进先出的婊 特点:只能在某一端插入和删除的特殊的线性表 操作:进栈--PUSH->向栈顶插入元素 出栈--POP-->将栈顶元素删除 实现 ...

  4. 十进制转n进制

    #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #defi ...

  5. ->code vs 1474 十进制转m进制

    1474 十进制转m进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果   题目描述 Description 将十进制数n转换成m进 ...

  6. wikioi 1474 十进制转m进制

    /*===================================== 1474 十进制转m进制 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=1 ...

  7. 十进制转为x进制的递归代码

    十进制转为x进制的递归代码 #include <stdio.h> void fun(int n,int x) { ) return; else { fun(n/x,x); printf(& ...

  8. 1474 十进制转m进制

    1474 十进制转m进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 将十进制数n转换成m进制数 m ...

  9. C++十进制到任意进制

    #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...

随机推荐

  1. 设计模式(17) 访问者模式(VISITOR) C++实现

    意图: 表示一个作用于某对象结构的各元素的操作.它使你可以再不改变各元素的类的前提下定义作用于这些元素的新操作. 动机: 之前在学校的最后一个小项目就是做一个编译器,当时使用的就是访问者模式. 在静态 ...

  2. 探寻IIS最大并发数

    原文链接,http://www.cnblogs.com/birdshover/archive/2009/08/16/1547025.html 原文评论值得一看!   测试系统Window 2003 S ...

  3. PHP面试常用算法(推荐)

    一.冒泡排序 基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换.这样比较小(大)的数值就将逐渐从后面向前面移动. ...

  4. TCP/IP 协议图--传输层中的 TCP 和 UDP

    TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP. TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但 ...

  5. html禁用缓存

    <!-- 禁用缓存 --><meta http-equiv="pragma" content="no-cache"><META H ...

  6. 缓存MEMCACHE php调用

    在项目中,涉及大访问量时,合理的使用缓存能减轻数据库的压力,同时提升用户体验.即在非实时性的需求的前提下,一小段时间内(若干秒),用于显示的数据从缓存中获取的,而不用直接读取数据库,能有效的减少数据库 ...

  7. es6面试题--Promise相关

    1. const promise = new Promise((resolve, reject) => { console.log(); resolve(); console.log(); }) ...

  8. 解决python编码问题报错:'ascii' codec can't encode characters in position 0-15: ordinal not in range(128)

    这个问题很奇怪,在服务器上执行一个写数据库的python文件,正常执行,但是使用java的ssh进行调用脚本,发现就是不执行数据库的写入,然后使用了try except的方式,打印了错误信息,发现报错 ...

  9. python 中的pipe

    from multiprocessing import Process,Queue,Pipe import os def f(q): # q.send([42,None,'hello']) print ...

  10. calayer defaultValueForKey

    例如:我们新建一个SubLayer类继承自CALayer,则在SubLayer.m中重写此方法.如下: + (id)defaultValueForKey:(NSString *)key { if ([ ...