[爆卦]pseudo code格式是什麼?優點缺點精華區懶人包

為什麼這篇pseudo code格式鄉民發文收入到精華區:因為在pseudo code格式這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者jack3651 (黃金柳橙汁)看板Grad-ProbAsk標題[理工] 虛擬碼的寫法時間Tue...


請問虛擬碼要怎麼寫比較正確呢
目前我對虛擬碼的作法是:
1.是一支程式的函數(或方法、副程式)
2.有必要時要在副程式外面宣告(例如:陣列的格式)
3.要有回傳值(return、陣列、&指標)

有些虛擬碼直接用Index當做全域變數
可以在函數裡面修改的那種(call by reference)
所以就沒有回傳值

例如:Stack的Push 2種版本
1.網路高手版 //問題
void push(stack &stack , type data)
{
Index top; //直接使用Index當全域變數
if(top=MAX_SIZE){
print"Stack is full";
}
else{
stack[top]=data;
top=top+1;
}
}

2.洪逸板
宣告:S:array[1...n] of item; //在函數外面宣告了兩個變數
Top:int = 0;
push(S,item) //沒有設回傳值型態
{
if(Top==n)then return "S full";
else{
Top=Top+1;
S[Top]=item;
}
}

請問哪一種比較正確呢?
順便想問問寫虛擬碼有什麼訣竅,這個地方常常弄不懂,感謝各位高手的幫忙> <

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.185.240
PTT007:沒有固定格式,你高興就好 12/31 22:22

Stack的Push和Pop
宣告:keytype S[1...n];
int Top=0;
void push(keytype S[], keytype data){
if(Top=n)
print"stack is full";
else{
S[Top]=data;
Top=Top+1;
}
}

void pop(keytype S[]){
if(Top=0)
print"stack is empty";
else
Top=Top-1;
}
這樣寫可以嗎?
※ 編輯: jack3651 來自: 220.133.185.240 (12/31 23:04)
seal0112:邏輯對就可以 你用中文敘述過程也會對 01/01 05:16

你可能也想看看

搜尋相關網站