作者soarinsoar (焉知)
看板Grad-ProbAsk
标题Re: [问题] 资结
时间Mon May 11 00:53:34 2009
※ 引述《kaedeyuki (大R)》之铭言:
: 有两题,但不敢肯定答案,想请问一下解法,恳求帮助谢谢
: 1. 假设堆叠大小是6,push()函数会江资料加入堆叠内,pop()函数会取出堆叠顶端资料
: 若有一程式如下,请写出printf()函数执行的结果
: Void main()
: {
: push(10);
: push(20);
: push(30);
: push(pop()+40);
: printf("%d\n", pop());
: printf("%d\n", pop()-pop());
: }
stack是FILO
push(10) => ˍˍˍˍ
10 |
 ̄ ̄ ̄ ̄
push(20) => ˍˍˍˍˍ
20 10 |
 ̄ ̄ ̄ ̄ ̄
push(30) => ˍˍˍˍˍˍ
30 20 10 |
 ̄ ̄ ̄ ̄ ̄ ̄
push(pop()+40) => pop出30 , 30+40=70 , push(70)
so , ˍˍˍˍˍˍ
70 20 10 |
 ̄ ̄ ̄ ̄ ̄ ̄
printf("%d\n",pop()) => pop出70 , 印出70
printf("%d\n",pop()-pop()) => pop出20 , 在pop出10 , 20-10=10 , 印出10
: 2. 假设环状伫列的大小是6,add()函数会将资料加入伫列中,delete()函数会从
: 伫列中取出一资料,若有一程式如下,请写出printf()函数执行结果
: Void main()
: {
: add(10);
: add(20);
: add(30);
: add(delete()+40);
: printf("%d\n", delete());
: printf("%d\n", delete()-delete());
: }
Queue是FIFO
add(10) => ˍˍˍˍ
10
 ̄ ̄ ̄ ̄
add(20) => ˍˍˍˍˍ
20 10
 ̄ ̄ ̄ ̄ ̄
add(30) => ˍˍˍˍˍˍ
30 20 10
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
add(delete()+40) => delete出10 , 10+40=50 , add(50) ,
so , ˍˍˍˍˍˍ
50 30 20
 ̄ ̄ ̄ ̄ ̄ ̄
printf("%d\n",delete()) => delete出20 , 印出20
printtf("%d\n",delete()-delete()) => delete出30 , 再delete出50 ,
30-50=-20 , 印出 -20
--
***********************************************************************
*** 今夜 咖啡仍然喝不醉 现在它就像白开水一样无味 ***
*** 放着抒情的音乐 聆听最後的章节 望着对街 十六夜之月 多麽美 ***
*** 一个人的深夜 说不出来的哽咽 除了心碎 眼泪已经悄悄往下坠 ***
*** 喝了咖啡 习惯一个人的夜 天亮 仍然是咖啡 陪我入睡 ***
***********************************************************************
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.125.191.205