棧 行編輯程式

2021-07-24 16:05:45 字數 1414 閱讀 7851

#include #include #include #include typedef char datatype;

#include "seqstack.h"

void lineedit();

void main()

void lineedit() // 行編輯程式

ch = getchar(); //讀入下乙個字元

} while (!stackempty(s))

/*棧後進先出,直接出棧字串行相反,所以用陣列倒序輸出*/

for (i = j - 1; i >= 0; i--) //輸出正確的字串行

printf("%c", a[i]);

printf("\n");

clearstack(&s);

}

/*順序棧標頭檔案:seqstack.h*/

#include #include #define stacksize 100

typedef char datatype;

typedef struct

seqstack;

void initstack(seqstack *s);//初始化棧

int stackempty(seqstack s);//判斷棧是否為空

int gettop(seqstack s, datatype *e);//取棧頂元素

int pushstack(seqstack *s, datatype e);//入棧

int popstack(seqstack *s, datatype *e);//出棧

int stacklength(seqstack s);//求棧長度

void clearstack(seqstack *s);//清空棧

void initstack(seqstack *s)//將棧s初始化為空棧

int stackempty(seqstack s)//判斷棧是否為空,棧為空返回1,否則返回0

else }

int gettop(seqstack s, datatype *e)

//取棧頂元素,將棧頂元素值返回給e,並返回1表示成功,返回0表示失敗

else }

int pushstack(seqstack *s,datatype e)//進棧操作

//將元素e進棧,元素進棧成功返回1,否則返回0

else }

int popstack(seqstack *s,datatype *e)//出棧操作

else }

int stacklength(seqstack s)//返回棧長度

void clearstack(seqstack *s)//清空棧

棧 行編輯程式

如果遇到 表示後退一格,即前一字元無效,如果遇到 表示前一單詞無效,即退出到空格或所在行頭為止。採用棧實現。輸入 whli ilr e s s 輸入包含若干行,由各種字元構成。輸出 while s 利用描述規則輸出最後的文字內容。seqstack.h ifndef seqstack h define...

DS 行編輯程式

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

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

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