文档介绍:数据结构实验报告
实验名称:栈和队列及其应用
班级:12级电气本2
学号:2012081227
姓名:赵雪磊
指导教师:梁海丽
日期:2013年9月23日
数学与信息技术学院
实验目的
1. 掌握栈和队列的概念。
(插入、删除、取栈顶元素、出队、入队等)。
、链式存储。
实验要求
利用顺序栈将任意一个给定的十进制数转换成二进制、八进制、十六进制数并输出。
算法描述
#include ""
#include ""
void D10to2_8_16(int i,char radix)
{
char m;
if(i>=radix)
D10to2_8_16(i/radix,radix);
if((m=i%radix+'0')>0x39)
m+=7;
cout << m;
}
void main(void)
{
int nDec;
cout << "请输入一个十进制正整数...\n" << "nDec=";
cin >> nDec;
cout << "转换为二进制是:";
D10to2_8_16(nDec,2);
cout << endl;
cout << "转换为八进制是:0";
D10to2_8_16(nDec,8); cout << endl;
cout << "转换为十六进制是:0x";
D10to2_8_16(nDec,16);
cout << endl;
}
程序清单
#include<iostream>
#include<>
#define N 2 //可以控制进制转换
using namespace std;
typedef struct{
int *top;
int *base;
int stacksize;
}stack;
int initstack(stack &s)
{
=(int *)malloc(100*sizeof(int));
= ;
=100;
return 1;
}
int push(stack &s,int e)
{
* =e;
++;
return 1;
}
int pop(stack &s,int &e)
{
--;
e=* ;
return 1;
}
int getelem(stack s)
{
int e=0;
while( != )
{
pop(s,e);
cout<<e<<" ";
}
return 1;
}
int creatstack(stack &s)
{
float e=0,m=1;
cout<<"输入0表示结束栈的初始化"<<endl;
while(m!=0)//输入0表示结束栈的初始化