程式語言/98身心障礙 - 考試
By Charlotte
at 2013-03-12T14:53
at 2013-03-12T14:53
Table of Contents
五、桌上有N本書成一疊,當閱讀其中某本書的時候,會逐本將壓在該本書上的書照順
序由上而下的移開,並且按照移開的順序先將它們放在旁邊,然後取走想要看的書;
當閱讀完畢以後,會將剛才移開的書逐本逆向放回,並且將看完的書本放在最上面,
例如桌上有五本書:
書本 1
書本 2
書本 3
書本 4
書本 5
經過閱讀"書本 3"後放回之最終書本狀態變成
書本 3
書本 2
書本 1
書本 4
書本 5
請撰寫一段程式執行以上工作,不限程式語言:(25 分)
輸入:一個初始書本序列和一個閱讀書之序列
輸出:最終的書本狀態
目前的程式長這樣,不過printBook函數不能運作
是什麼原因~??
#include<iostream>
#define N 50
using namespace std;
struct Node{
int number;
char name[10];
};
struct Stack{
Node *stackpointer[N];
int sp;
};
struct Queue{
Node *queuepointer[N];
int rear;
int front;
};
int isempty(Stack *);
void push(Stack *,Node *);
void printBook(Stack *);
int main(){
Stack s;
Queue q;
Node *ptr=new Node;
strcpy(ptr->name,"書本5");
ptr->number=5;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本4");
ptr->number=4;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本3");
ptr->number=3;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本2");
ptr->number=2;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本1");
ptr->number=1;
push(&s,ptr);
printBook(&s);
system("pause");
return 0;
}
void push(Stack *p,Node *x){
p->sp++;
p->stackpointer[p->sp]=x;
}
Node* pop(Stack *p){
if(isempty(p))
cout<<"堆疊已空"<<endl;
else
return p->stackpointer[p->sp--];
}
int isempty(Stack *p){
if(p->sp==-1)
return 1;
else
return 0;
}
void printBook(Stack *p){
// for(int i=0;i<=p->sp;i++){
cout<<p->stackpointer[0]->number<<endl;
// }
}
--
序由上而下的移開,並且按照移開的順序先將它們放在旁邊,然後取走想要看的書;
當閱讀完畢以後,會將剛才移開的書逐本逆向放回,並且將看完的書本放在最上面,
例如桌上有五本書:
書本 1
書本 2
書本 3
書本 4
書本 5
經過閱讀"書本 3"後放回之最終書本狀態變成
書本 3
書本 2
書本 1
書本 4
書本 5
請撰寫一段程式執行以上工作,不限程式語言:(25 分)
輸入:一個初始書本序列和一個閱讀書之序列
輸出:最終的書本狀態
目前的程式長這樣,不過printBook函數不能運作
是什麼原因~??
#include<iostream>
#define N 50
using namespace std;
struct Node{
int number;
char name[10];
};
struct Stack{
Node *stackpointer[N];
int sp;
};
struct Queue{
Node *queuepointer[N];
int rear;
int front;
};
int isempty(Stack *);
void push(Stack *,Node *);
void printBook(Stack *);
int main(){
Stack s;
Queue q;
Node *ptr=new Node;
strcpy(ptr->name,"書本5");
ptr->number=5;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本4");
ptr->number=4;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本3");
ptr->number=3;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本2");
ptr->number=2;
push(&s,ptr);
ptr=new Node;
strcpy(ptr->name,"書本1");
ptr->number=1;
push(&s,ptr);
printBook(&s);
system("pause");
return 0;
}
void push(Stack *p,Node *x){
p->sp++;
p->stackpointer[p->sp]=x;
}
Node* pop(Stack *p){
if(isempty(p))
cout<<"堆疊已空"<<endl;
else
return p->stackpointer[p->sp--];
}
int isempty(Stack *p){
if(p->sp==-1)
return 1;
else
return 0;
}
void printBook(Stack *p){
// for(int i=0;i<=p->sp;i++){
cout<<p->stackpointer[0]->number<<endl;
// }
}
--
Tags:
考試
All Comments
By George
at 2013-03-15T11:20
at 2013-03-15T11:20
By Dora
at 2013-03-18T03:09
at 2013-03-18T03:09
By Frederic
at 2013-03-19T04:58
at 2013-03-19T04:58
Related Posts
101年地特4等台北市-人事行政上榜
By Dinah
at 2013-03-12T14:05
at 2013-03-12T14:05
記帳士會計科目
By Zanna
at 2013-03-12T13:47
at 2013-03-12T13:47
102初等一般行政上榜心得
By Eartha
at 2013-03-12T13:37
at 2013-03-12T13:37
法學續論的問題
By Blanche
at 2013-03-12T13:09
at 2013-03-12T13:09
初五等一般行政錄取心得
By Tristan Cohan
at 2013-03-12T12:38
at 2013-03-12T12:38