棧 行編輯程式

2021-07-02 11:53:32 字數 1411 閱讀 5256

如果遇到『#』,表示後退一格,即前一字元無效,如果遇到@,表示前一單詞無效,即退出到空格或所在行頭為止。採用棧實現。

輸入:whli##ilr#e(s#*s++)

輸入包含若干行,由各種字元構成。

輸出:while(*s++)

利用描述規則輸出最後的文字內容。

seqstack.h
#ifndef _seqstack_h_

#define _seqstack_h_

#include#includeusing namespace std;

typedef char elemtype;

#define stack_max_size 20

typedef struct stack

stack;

void initstack(stack *stack);

bool isfull(stack *stack);

bool isempty(stack *stack);

bool push(stack *stack,elemtype x);

elemtype pop(stack *stack,elemtype *x);

bool show_stack(stack *stack);

elemtype gettop(stack *stack,elemtype *x);

void clear(stack *stack);

void destroy(stack *stack);

#endif //_seqstack_h_

seqstack.cpp
#include"seqstack.h"

void initstack(stack *stack)

bool isfull(stack *stack)

bool isempty(stack *stack)

bool push(stack *stack,elemtype x)

elemtype gettop(stack *stack,elemtype *x)

bool show_stack(stack *stack)

void destroy(stack *stack)

elemtype pop(stack *stack,elemtype *e)

main.cpp
#include"seqstack.h"

void lineedit()

ch = getchar();

} while(st.top>0)

cout<<"now:";

while(st2.top>0)

{ pop(&st2,&e);

cout<

棧 行編輯程式

include include include include typedef char datatype include seqstack.h void lineedit void main void lineedit 行編輯程式 ch getchar 讀入下乙個字元 while stackemp...

DS 行編輯程式

題目描述 乙個簡單的行編輯程式的功能是 接收使用者從終端輸入的程式或資料,並存入使用者的資料區。由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,每接收乙個字元即存入使用者資料區 的做法顯然不是很恰當。較好的做法是,設立乙個輸入緩衝區,用以接收使用者輸入的一行字元,然後逐行存入使...

C語言資料結構 棧 行編輯程式

順序棧標頭檔案 seqstack.h include include define stacksize 100 typedef char datatype typedef struct seqstack void initstack seqstack s 初始化棧 int stackempty se...