DICTATOR第三週棧與佇列作業

2021-10-10 02:27:54 字數 1937 閱讀 8992

//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.編寫乙個程式,輸入乙個一元二次方程的三個係...