洛谷p1044c语言
时间: 2025-01-04 15:28:06 AIGC 浏览: 60
### 洛谷 P1044 C语言解法
洛谷 P1044 题目名为「栈」,属于数据结构中的经典问题之一。该题目要求模拟栈的操作并输出最终的结果。
#### 代码实现
以下是针对此题目的C语言解决方案:
```c
#include <stdio.h>
#include <string.h>
#define MAXN 1005
char stack[MAXN];
int top;
void init_stack() {
memset(stack, 0, sizeof(stack));
top = 0;
}
void push(char ch) {
stack[top++] = ch;
}
char pop() {
if (top == 0) return '\0';
return stack[--top];
}
int is_empty() {
return top == 0;
}
int main() {
char str[2][MAXN], temp_str[MAXN];
int T;
scanf("%d", &T);
getchar(); // 吃掉换行符
while(T--) {
gets(str[0]);
strcpy(temp_str, "");
init_stack();
for(int i = 0; str[0][i]; ++i){
if(isalpha(str[0][i])){
strcat(temp_str, &(str[0][i]));
}
else{
switch(str[0][i]){
case '(' : break;
case ')' :
while(1){
char op = pop();
if(op=='\0')break;
strcat(temp_str, &op);
}
break;
default:
push(str[0][i]);
}
}
}
while(!is_empty()){
char op = pop();
if(op != '\0')
strcat(temp_str, &op);
}
printf("%s\n", temp_str);
}
}
```
这段程序实现了基本的栈操作功能,包括`push()`入栈、`pop()`出栈以及判断栈是否为空等功能[^1]。通过读取输入字符串,并按照特定规则处理括号内的字符序列来构建新的表达式串。最后打印转换后的结果。
阅读全文
相关推荐


















