//author dictator
//this is stack code
#include
#include
typedef
struct nodenode;
typedef
struct stackstack;
stack*
createmptystack()
void
push
(stack* st,
int data)
intisempty
(stack* st)
void
pop(stack* st)
node* temp = st->top;
printf
("%d\n"
,temp->data)
;//為了有出棧的直觀反映,在此函式中printf
st->top = temp->next;
free
(temp)
;//釋放記憶體
}void
clear
(stack* st)
node* temp1 = st->top;
node* temp2 =
null
;while
(temp1 != st->buttom)
st->top = st->buttom;
//將棧頂賦為棧尾
printf
("棧清空完成!\n");
}void
destory
(stack* st)
intmain()
pop(st)
;pop
(st)
;clear
(st)
;destory
(st)
;return0;
}
將鍊錶熟悉後,棧的**書寫並沒有那麼困難。但目前個人覺得鍊錶棧的運用範圍比較小,後進先出的限制侷限了棧的使用。 並且個人並沒有體會到鍊錶棧優於陣列棧的方面。
//author dictator
//this is queue code
#include
#include
typedef
struct nodenode;
typedef
struct queuequeue;
queue*
createmptyqueue()
node*
listheaddelelte
(node* head)
return head;
}int
isempty
(queue* qu)
void
push
(queue* qu,
int data)
newnode->next = qu->tail->next;
//新節點進行尾插
qu->tail->next = newnode;
qu->tail = newnode;
return;}
void
pop(queue* qu)
void
clear
(queue* qu)
node* temp1 = qu->head;
node* temp2 =
null
;while
(temp1 != qu->tail)
qu->head = qu->tail;
printf
("佇列清空完成!\n");
}void
destory
(queue* qu)
intmain()
佇列與棧的區別個人感覺不大,但是佇列的書寫會稍微麻煩一點。總之熟練掌握鍊錶可以較快掌握。 第三週實驗作業 棧和佇列
main函式 初始函式 銷毀函式 入棧函式 出棧函式 判斷對稱函式 段錯誤 使用while迴圈導致一直方位不存在的位置。用for迴圈代替while迴圈 部分錯誤 在主函式中輸入資料的迴圈中判斷迴圈結束的標誌錯誤。往陣列中輸入字串是末尾有個結束標誌 0 定義陣列 a,s,b,b1 定義乙個字元型棧 m...
集訓第三週
又要感嘆時間過得真快了,8月13號,距離第一場網路賽還有26天。暑假三周集訓結束,個人賽也結束了,這一周還是做了一些個人賽,然後組好了隊伍。去年一隊有2個人算是 實力超群 比其餘人都高乙個檔次。而今年大家的水平都差不多,沒有像去年他們那麼突出,實力自然有不小的下降。相比去年的隊伍,今年隊的特點是大家...
第三週作業
實驗作業 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係...