#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...