欢迎来到天天文库
浏览记录
ID:12943013
大小:361.00 KB
页数:37页
时间:2018-07-19
《算法与数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法与数据结构实验报告学院:计算机与信息学院专业班级:姓名:学号:实验一栈和队列实验目的:掌握栈和队列特点、逻辑结构和存储结构熟悉对栈和队列的一些基本操作和具体的函数定义。利用栈和队列的基本操作完成一定功能的程序。实验任务:1.给出顺序栈的类定义和函数实现,利用栈的基本操作完成十进制数N与其它d进制数的转换。(如N=1357,d=8)实验原理:将十进制数N转换为八进制时,采用的是“除取余数法”,即每次用8除N所得的余数作为八进制数的当前个位,将相除所得的商的整数部分作为新的N值重复上述计算,直到N为0为止。此时,将前面所得到的各余数反过来连接便得到
2、最后的转换结果。程序清单:#include#includeusingnamespacestd;typedefintDATA_TYPE;constintMAXLEN=100;enumerror_code{success,overflow,underflow};classstack{public:stack();boolempty()const;error_codeget_top(DATA_TYPE&x)const;error_codepush(constDATA_TYPEx);error_codepop();bo
3、olfull()const;private:DATA_TYPEdata[MAXLEN];intcount;};stack::stack(){count=0;}boolstack::empty()const{returncount==0;}error_codestack::get_top(DATA_TYPE&x)constif(empty())returnunderflow;else{x=data[count-1];returnsuccess;}}error_codestack::push(constDATA_TYPEx){if(full())ret
4、urnoverflow;else{data[count]=x;count++;}}error_codestack::pop(){if(empty())returnunderflow;else{count--;returnsuccess;}}boolstack::full()const{returncount==MAXLEN;}voidmain(){stackS;intN,d;cout<<"请输入一个十进制数N和所需转换的进制d"<>N>>d;if(N==0){cout<<"输出转换结果:"<5、.push(N%d);N=N/d;}cout<<"输出转换结果:"<6、数来求出对应位置的下一行内容。为此,需要用队列来保存上一行的内容。每当由上一行的两个数求出下一行的一个数时,其中的前一个便需要删除,而新求出的数就要入队。程序清单:#include#includeusingnamespacestd;typedefintDATA_TYPE;constintMAXLEN=100;enumerror_code{success,underflow,overflow};classqueue{public:queue();boolempty()const;error_codeget_fro7、nt(DATA_TYPE&x)const;error_codeappend(constDATA_TYPEx);error_codeserve();boolfull()const;private:intfront,rear;DATA_TYPEdata[MAXLEN];};queue::queue(){rear=0;front=0;}boolqueue::empty()const{return(front%MAXLEN==rear%MAXLEN);}error_codequeue::get_front(DATA_TYPE&x)const{if(empt8、y())returnunderflow;else{x=data[front%MAXLEN];returnsuccess;}
5、.push(N%d);N=N/d;}cout<<"输出转换结果:"<6、数来求出对应位置的下一行内容。为此,需要用队列来保存上一行的内容。每当由上一行的两个数求出下一行的一个数时,其中的前一个便需要删除,而新求出的数就要入队。程序清单:#include#includeusingnamespacestd;typedefintDATA_TYPE;constintMAXLEN=100;enumerror_code{success,underflow,overflow};classqueue{public:queue();boolempty()const;error_codeget_fro7、nt(DATA_TYPE&x)const;error_codeappend(constDATA_TYPEx);error_codeserve();boolfull()const;private:intfront,rear;DATA_TYPEdata[MAXLEN];};queue::queue(){rear=0;front=0;}boolqueue::empty()const{return(front%MAXLEN==rear%MAXLEN);}error_codequeue::get_front(DATA_TYPE&x)const{if(empt8、y())returnunderflow;else{x=data[front%MAXLEN];returnsuccess;}
6、数来求出对应位置的下一行内容。为此,需要用队列来保存上一行的内容。每当由上一行的两个数求出下一行的一个数时,其中的前一个便需要删除,而新求出的数就要入队。程序清单:#include#includeusingnamespacestd;typedefintDATA_TYPE;constintMAXLEN=100;enumerror_code{success,underflow,overflow};classqueue{public:queue();boolempty()const;error_codeget_fro
7、nt(DATA_TYPE&x)const;error_codeappend(constDATA_TYPEx);error_codeserve();boolfull()const;private:intfront,rear;DATA_TYPEdata[MAXLEN];};queue::queue(){rear=0;front=0;}boolqueue::empty()const{return(front%MAXLEN==rear%MAXLEN);}error_codequeue::get_front(DATA_TYPE&x)const{if(empt
8、y())returnunderflow;else{x=data[front%MAXLEN];returnsuccess;}
此文档下载收益归作者所有