- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构报告4
实验五 栈的定义及基本操作
指导教师: 朱芳
学生姓名: 黄泽承
学生学号:
实验日期: 2014.4.13
选课时间段: 周一下午678节
一、实验目的:
. 熟练掌握栈和队列的特点
. 掌握栈的定义和基本操作,熟练掌握顺序栈的操作及应用
. 掌握对列的定义和基本操作,熟练掌握链式队列的操作及应用
加深对栈结构的理解,逐步培养解决实际问题的编程能力
二、实验内容:
1)利用堆栈实现进制转换
2)利用一个堆栈,将一个线性表中的元素按逆序重新存放。
三、主要源代码
1)
#include stdio.h
#include malloc.h //malloc,realloc
#include math.h //含有overflow
#include process.h
#define S_SIZE 100 //栈的空间大小
#define STACKINCREAMENT 10//增加空间
struct SqStack{
int *base; //栈底
int *top; //栈顶
int stacksize; //栈当前的存储空间
};
//主函数开始
void main()
{//子函数声明
void InitStack(SqStack S);//初始化空栈
int StackEmpty(SqStack S);//判空
void GetTop(SqStack S,int e);//获得栈顶元素
void push(SqStack S,int e);//进栈
void pop(SqStack S,int e);//出栈
void convert(SqStack S,int N,int n);//十进制转N进制
int i,num;
unsigned n,N;//要转换成的进制数和要转换的数
SqStack s;
InitStack(s);//初始化空栈
printf(输入要转换的十进制数和要转换为的进制数:\n);
scanf(%d,%d,N,n);
printf(%d转换为%d进制后为:\n,N,n);
convert(s,N,n);
}
void InitStack(SqStack S)
{S.base=(int *)malloc(S_SIZE*sizeof(int));
S.stacksize=S_SIZE;
S.top=S.base;//初始化空栈
}
int StackEmpty(SqStack S)
{
if(S.base==S.top)
return 1;
else
return 0;
}
void GetTop(SqStack S,int e)
{//获得栈顶元素
e=*(S.top-1);
}
void push(SqStack S,int e)
{//进栈
if(S.top-S.base=S.stacksize)
{S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREAMENT)*sizeof(int));
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREAMENT;}
*(S.top)=e;
S.top++;
}
void pop(SqStack S,int e)
{//出栈
if(S.base!=S.top)
{S.top--;
e=*S.top;}
}
void convert(SqStack S,int N,int n)
{
InitStack(S);
do
{push(S,N%n);
N/=n;
} while (N!=0);
int i,e;
while(!StackEmpty(S))
{ pop(S,e);
if(e9)//十六进制时输出字母
{e=e+55;
printf(%c,e);}
else
printf(%d,e);
}
printf(\n);
}
2)
#inclu
您可能关注的文档
- 数据结构C语言版DS06-树.ppt
- 数据结构PPT(第10章 排序).ppt
- 数据结构PPT(第6章 树和二叉树).ppt
- 数据结构_06_集合与字典.ppt
- 数据结构_03_栈与队列.ppt
- 数据结构_哈夫曼编码器.doc
- 数据结构__图的基本知识点.ppt
- 数据结构_树和二叉树.pptx
- 数据结构上机实习-资源管理器.doc
- 数据结构上机报告-实现一元多项式抽象数据类型.docx
- 2025年中国铸管沥青漆喷涂机市场调查研究报告.docx
- 2025至2031年中国聚四氟乙割管料行业投资前景及策略咨询研究报告.docx
- 2025至2031年中国屏蔽箱行业投资前景及策略咨询研究报告.docx
- 2025年中国B级电源电涌保护器市场调查研究报告.docx
- 2025至2031年中国陶瓷印章行业投资前景及策略咨询研究报告.docx
- 2025至2031年中国保冷材料行业投资前景及策略咨询研究报告.docx
- 2025至2031年中国金彩立雕玻璃行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国机箱螺母柱数据监测研究报告.docx
- 2025至2030年中国小GS管装饰头数据监测研究报告.docx
- 2025至2030年中国气动电阻焊机数据监测研究报告.docx
文档评论(0)