波士尼亞文翻譯我看過兩種版本,內容有所分歧,
一個是蘇維雅譯 翻譯Horowitz的Fundamentals of Data Structures in C 的中譯本
另一個是我之前自學C說話時買 翻譯柴田望洋寫的明?C說話教學手冊 博碩文化
Fundamentals of Data Structures in C中的內容以下:
void add(int *top 翻譯公司。-> 翻譯社|,-> 翻譯公司|的-> 翻譯 element item)
{
/*add an item to the global stack*/
if (*top>=MAX_STACK_SIZE-1){
stack_full();
return;
}
stack[++*top]=item;
}
element delete(int *top)
{
/*return the top element from the stack*/
if(*top=-1)
return stack_empty(); /*return an error key*/
return stack[(*top)--];
}
然後明解C語言教授教養手冊的堆疊程式碼典範榜樣節錄如下
/*--- 對堆疊push資料 ---*/
int StackPush(Stack *s, int x)
{
if (s->ptr >= s->max) /* 堆疊已滿了 */
return (-1);
s->stk[s->ptr++] = x;
return (0);
}
/*--- 從堆疊將資料pop出來 ---*/
int StackPop(Stack *s, int *x)
{
if (s->ptr <= 0) /* 堆疊是空的 */
return (-1);
*x = s->stk[--s->ptr];
return (0);
}
這兩種一個是在push時++運算在指標之前 另一個是在指標以後
在pop時 --運算一個在指標以後,一個在指標之前
就我小我 翻譯理解在pop時應是先將top指標所指的物件值輸出,再作--運算
而push是先將top指標向前一格,再將值複製入指標所指位置,所以應該是
Horowitz的比較公道,可是現實時作明解C的程式碼之後,也沒什麼問題
而且在補習班資結問題解答中也有看過如許的寫法,跟明解C說話 翻譯很像
void push(int element){
if(IsFull())StackFull();
stack[top++];
}
void pop(){
if(IsEmpty()){StackEmpty();return-1;}
element=stack[--top]
}
請問為什麼這兩種寫法可以互通?
以下文章來自: https://www.ptt.cc/bbs/C_and_CPP/M.1269594540.A.603.html有關翻譯的問題歡迎諮詢華碩翻譯社
- Jan 08 Mon 2018 05:19
[問題]C語言的堆疊push和pop時指標移動的問題
close
文章標籤
全站熱搜
留言列表