下载此文档

实验报告二(栈和队列).docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
完成人:朱荣(程序员、测试员、文档员) 113200980300006
陈森来(程序员、测试员、文档员) 113200980300007
邓兵超(程序员、测试员、文档员) 113200980300023
熊余(程序员、测试员、文档员) 113200980300030
实验题目
实验二栈和队列的应用(综合性实验 3学时)
实验目的
本次实习的目的在于深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造方法,接触较复杂问题的递归算法设计。
必做题:
1、写一个数制转换的完整程序,对于键盘输入的任意一个非负十进制数,转换成等值的二进制数,八进制数,或十六进制数。
#include<iostream>
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define ERROR 0
#define OK 1
#define OVERFLOW -2
typedef struct {
int * base;
int *top;
int stacksize;
}SqStack;
int StackEmpty(SqStack *S)
{
return (S->top==S->base);
}
int InitStack(SqStack *S)
{ S->base=(int *)malloc(STACK_INIT_SIZE * sizeof(int));
if(!S->base)
cout<<OVERFLOW<<endl;
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
return OK;
}
void Push(SqStack *S,int e)
{
if(S->top-S->base>=S->stacksize)
{S->base=(int *)realloc(S->base,(S->stacksize+STACKINCREMENT) * sizeof(int));
if(!S->base)
cout<<OVERFLOW<<endl;
S->top=S->base+S->stacksize;
S->stacksize+=STACKINCREMENT;
}
*(S->top++)=e;
}
int Pop(SqStack *S,int *e)
{
if(S->top==S->base)
return ERROR;
*e=* (--S->top);
return OK;
}
int main( )
{ int N,e,n;
SqStack S;
InitStack(&S);
cin>>n;
for(int i=0;i<n;i++)
{
cin>>N;
while(N)
{ Push(&S,N%8);
N=N/8;
}
while(!StackEmpty(&S))
{ Pop(&S, &e);
cout<<e;
}
cout<<endl;
}
return 0;
}

实验报告二(栈和队列) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1136365664
  • 文件大小168 KB
  • 时间2017-12-11