你写一个stack.h的头文件,里面声明几个函数原形:
stack.h
#ifndef STACK_H
#define STACK_H
extern void push(char)
extern char pop(void)
extern int is_empty(void)
#endif
你可以在其相应的stack.c中对这些函数进行实现
stack.c
#include "stack.h"
void push(char)
{
/*your code*/
}
char pop(void)
{
/*your code*/
}
int is_empty(void)
{
/*your code*/
}
在main.c中你可以这样写
#include <stdio.h>
#include "stack.h"
int main()
{
push('a')
push('b')
push('c')
while(!is_empty())
putchar(pop())
putchar('\n')
return 0
}
大致格式就是这样,在stack.h(这个名字你可以随便定),在这个头文件中声明函数原形,在相应的stack.c中进行函数定义与实现,主程序文件中包含这个头文件之后就可以调用stack.h中声明的函数,编译后无错误即可执行,你可以试试。
兄弟我可是一个字一个字的打上去的,不是粘贴的。
sp,buffer要改成全局变量。sp,buffer指向的是自动变量one,stack,不用delete,程序结束后会自己释放的。
default:n++是不需要的。n++要放在switch的范围外,}while(1)的前面。while(1)要改成while(one[n]!='\0')
if(buffer)
{
delete buffer
cout<<"栈空间已释放"
}
改成
if(sp==buffer) cout<<"匹配"<<endl
else cout<<"不匹配"<<endl
不然你的程序根本不输出是否括号匹配。
目前,我们编写程序,都是在微软的 *** 作系统环境下运行的。我们的程序结束后,一般都是应该返回到 *** 作系统的界面。
上述几行,就是为了结束、返回,所做的工作。
与此相关的还有far、ret。
按照这个方法使用、编程就行了。要想理解这几行,可就费了牛劲了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)