资源简介
1、掌握顺序栈的类型定义方法。
2、掌握在顺序栈上实现的六种基本算法。
2、掌握顺序栈的简单应用。
利用顺序栈将一个非负的十进制整数N转换为对应的B进制数。
[基本要求]非负的十进制整数N和B都从键盘输入;转换结果从屏幕输出。
2、掌握在顺序栈上实现的六种基本算法。
2、掌握顺序栈的简单应用。
利用顺序栈将一个非负的十进制整数N转换为对应的B进制数。
[基本要求]非负的十进制整数N和B都从键盘输入;转换结果从屏幕输出。
代码片段和文件信息
// 数据结构实验三.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include
#define maxlen 100
using namespace std;
typedef struct
{
int s[maxlen];
int top;
}Stack;
//初始化栈
void InitStack(Stack &st)
{
st.top=-1;
}
//进栈
int push(Stack &stint x)
{
if(st.top==maxlen-1)
return 0;
else
{
st.top++;
st.s[st.top]=x;
return 1;
}
}
//出栈
int pop(Stack &stint &x)
{
if(st.top==-1)
return 0;
else
{
x=st.s[st.top];
st.top--;
return x;
}
}
//取栈顶元素
int gettop(Stack &stint &x)
{
if(st.top==-1)
{
return 0;
}
else
{
x=st.s[st.top];
return x;
}
}
//判断栈是否为空
int StackEmpty(Stack st)
{
if(st.top == -1)
{
return 1;
}
else
{
return 0;
}
}
//求栈的长度
int StackLength(Stack st)
{
return st.top+1;
}
//数制转换
void conversion(Stack &st)
{
int nx=0n1;
char ch;
while(1)
{
cout<<“请输入一个十进制数:\n“;
cin>>n;
cout<<“请输入你要转换的进制:\n“;
cin>>n1;
if(n1==0)
break;
while(n)
{
push(stn%n1);
n=n/n1;
}
while(!StackEmpty(st))
{
pop(stx);
cout< }
}
}
int main(int argc char* argv[])
{
int x=0x1=0n;
int s[maxlen];
Stack stst1;
InitStack(st);
InitStack(st1);
while(1)
{
cout<<“请输入入栈的元素个数(n<100):\n“;
cin>>n;
if(n<=maxlen)
break;
}
for(int i=0;i {
cout<<“请输入第“< cin>>s[i];
push(sts[i]);//入栈
}
cout<<“当前栈的长度为:“< cout<<“当前栈顶为:“< cout<<“当前栈弹出1个元素为:“< if(!StackEmpty(st))
cout<<“当前栈顶为:“< cout< conversion(st1);//数制转换
system(“pause“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1988 2010-10-24 21:59 栈的实现及应用\数据结构实验三.cpp
目录 0 2010-11-04 20:53 栈的实现及应用
----------- --------- ---------- ----- ----
1988 2
评论
共有 条评论