• 大小: 1.05 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-12-27
  • 语言: 其他
  • 标签:

资源简介

1、掌握顺序栈的类型定义方法。
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


评论

共有 条评论

相关资源