- 1
- 0
- 约3.05千字
- 约 47页
- 2022-05-06 发布于北京
- 举报
王晓宁(07计算机)
;栈 ( Stack );栈的主要操作;栈的表示和实现;top;类型表示;判栈空
bool stackEmpty (STACK s)
{
return s.top == 0; //栈空返回TRUE
} //否则返回FALSE
判栈满
int stackFull ( STACK s)
{
return s.top == MAXN;
} //判栈满,满则返回TRUE
//否则返回FALSE;初始化
void initStack ( STACK s)
{ //置空栈
s.top = 0;
}
入 栈
void push(STACK s, char dt)
{
if (stackfull(s))cout “The stack is full!”;
else s.data[s.top ++] = dt;
};取栈顶元素
void getTop (STACK s, char x) {
if ( stackEmpty(s) )
cout “Stack is empty!” endl;
else x = s.data[s.top - 1];
}
出栈
void pop (STACK s, char x) {
if ( stackEmpty(s) )
cout “Stack is empty!” endl;
else x = s.data[-- s.top];
};栈的应用举例;N = (N div d)×d + N mod d 例如:(1348)10 = (2504)8 ,其运算过程如下: N N div 8 N mod 8 1348 168 4 168 21 0 21 2 5 2 0 2;void conversion () {
initStack(S);
scanf (%d,N);
while ( N 0) {
push(S, N % 8);
N = N/8;
}
while (!stackempty(S)) {
pop(S,e);
printf ( %d, e );
}
} // 进制转化函数;行编辑程序
在用户输入一行的过程中,允许 用户输入出差错,并在发现有误时可以及时更正。
设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区; 并假设“#”为退格符,“@”为退行符。
假设从终端接受两行字符:
whli##ilr#e(s#*s)
outcha@putchar(*s=#++);
实际有效行为:
while (*s)
putchar(*s++);;void lineEdit(){
initStack(s);
ch = getchar();
while (ch != EOF) { //EOF为全文结束符
while (ch != EOF ch != \n) {
switch (ch) {
case # : pop(S, c); break;
case @: clearStack(S); break;// 重置S为空栈
default : push(S, ch); break;
}
ch = getchar(); // 从终端接收下一个字符
}
…代码略//将栈中元素输出
}
};限于二元运算符的表达式定义:
表达式 ::= (操作数) + (运算符) + (操作数)
操作数 ::= 简单变量 | 表达式
简单变量 :: = 标识符 | 无符号整数
Exp = S1 + OP + S2
前缀表示法OP + S1 + S2
中缀表示法 S1 + OP + S2
后缀表示法 S1 + S2 + OP;例如: Exp = a ? b + (c ? d / e) ? f
前缀式: + ? a b ? ? c / d e f
中缀式: a ? b + c ? d / e ? f
后缀式: a b ? c d e / ? f ? + ;后缀表达式求值;算法;铁轨( TOJ 1036 ) ;每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它
您可能关注的文档
- 案例教案二稿.pdf
- 一汽大众新经销商辅导改善总结会.pptx
- 国际金融学长的lecture economic exposure42.pptx
- nikon绝对式编码器纳入仕样书-mar mc43ahn001.pdf
- 01.2017认证07.宣讲2017v1.0管理信息化人才就业导向探究.pptx
- 关节文字全髋关节翻修1.pptx
- 参考教案成果database-a54.pptx
- 中药综合知识与技能-基础学习班全1练习.pdf
- 3.-经典五问一次成交49.pptx
- 真题里面上半部分是下半答案解析-1.pdf
- 广西南宁2025-2026秋季期末八年级【语文】试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一化学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末九年级数学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一英语(含答案,无听力音频).pdf
- 广西南宁2025-2026秋季期末高一地理试卷(含答案).pdf
- 内科护理(中职):心包疾病病人的护理PPT教学课件.ppt
- 胆管结石的中医护理方法.ppt
- 内科护理(中职):心肌疾病病人的护理PPT教学课件.ppt
- 内科护理(中职):心律失常病人的护理PPT教学课件.ppt
- 嵌入式系统实践及工程应用—从基础到人工智能:具备AI算力的嵌入式系统开发PPT教学课件.pptx
原创力文档

文档评论(0)