行编辑器的功能是这样的:当我们在书写一行字符的时候,如果发现某个字符打错,我们在字符后面添加一个#,可以删除这个字符,行编辑器是不让使用退格符的。如果发现写的一行都不是自己想要的,可以添加@删去@前面的一行字符。
当我们输入一行字符时,电脑将这些数据储存在栈区,当我们写错要删除一个字符时,字符就要出栈,如果整行重写,我们要将栈清零。如此分析我们对栈可做的操作主要有1:入栈2:出栈3:清零 不可少的当然还有4:对栈的初始化
栈是存储数据的地方,因此自己在编写时可以开辟一个内存空间s[ ]来起到栈的存储作用。我们还知道对栈的各种操作,如出栈,入栈,都是在对栈顶元素进行操作,因此对栈的描述还包括栈顶元素。
因此一个栈的描述包括存储空间和栈顶元素,由此我们可以用结构体struct stack{ char s[45], int top};来定义我们的栈。在数据结构定义完成后,我们可以定义各种函数对栈进行操作。如定义void push(struct stack *sp, char c);完成入栈工作;
定义void pop(struct stack *sp);完成出栈工作;
定义void ClearStack(struct stack *sp)完成清零工作;
用void init(struct stack *sp)进行初始化;#
最后一个函数int isEmpty(struct stack