考研資料結構與演算法之利用堆疊實現行編輯程式

2021-06-21 20:34:05 字數 1181 閱讀 9547

今天我的部落格終於迎來了第一位關注著,但是同時我也發現了之前的程式在出棧時是有一些問題的,但是還沒找到確切的原因,然後這一段**是今天晚上實現的行編輯的demo,但是現在是不完善的,明天或者後天我將會將它徹底修復。

#include #include #define ok 1

#define error 0

#define true 1

#define false 0

typedef int status;

typedef struct node

*stackelem;

typedef struct stack

;status initstack(stack *s);

status push(stack *s, char c);

status pop(stack *s, char *c);

status gettop(stack s, char *c);

status clearstack(stack *s);

status stackempty(stack s);

int main(void)

else

push(&s, '#');

break;

case '@':

clearstack(&s);

break;

default:

push(&s, c);

} scanf("%c",&c);

} while(!stackempty(s))

while(!stackempty(t))

system("pause");

}status initstack(stack *s)

status push(stack *s, char c)

status pop(stack *s, char *c)

status gettop(stack s, char *c)

status clearstack(stack *s)

status stackempty(stack s)

不過令我很得意的是,我還是對嚴蔚敏的程式做了一點小小的修改,使他更加強大了一些。

ps:剛剛經女神大人的提醒終於發現了錯誤之所在,原來要利用乙個getchar()來抹掉回車的字元才能夠正常使用,嗯就是這樣!。

資料結構與演算法 堆疊

定義 具有一定操作約束的線性表,只在一段做插入,刪除,先出 adt 型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的有窮鍊錶 操作集 初始化空堆疊,判斷是否已滿,是否為空,插入和刪除 堆疊的順序儲存結構通常由乙個一維陣列和記錄棧頂元素位置的變數組成。define struct snod...

考研資料結構與演算法之堆疊的建立與使用(一)

到了堆疊這裡一下子就輕鬆了,算是一種暫時的解脫吧。經過了鍊錶部分的學習和思考,我突然意識到嚴蔚敏教材的嚴謹性。下面是按照教材實現的堆疊操作 唯一有些疑問的是在pop操作中要不要根據需要縮減堆疊的尺寸呢?include include define ok 1 define error 0 define...

PTA 資料結構與演算法 堆疊

1.棧底元素是不能刪除的元素。1分 tf 2.對順序棧進行進棧 出棧操作不涉及元素的前 後移動問題。1分 tf 3.若用data 1 m 表示順序棧的儲存空間,則對棧的進棧 出棧操作最多只能進行m次。1分 tf 4.通過對堆疊s操作 push s,1 push s,2 pop s push s,3 ...