A.字符串逆置
B.迷宮求解
C.表達式求值
D.括號匹配
E.模式匹配
F.矩陣轉(zhuǎn)置
第1題
[說明]
用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)的棧稱為鏈棧。若鏈棧元素的數(shù)據(jù)類型為datatype,以LinkStack記鏈棧結(jié)構(gòu),其類型定義為:
typedef struct node
{ datatype data;
stmct node * next;
} StackNode, * LinkStack;
由于棧的主要操作都是在棧頂進行的,因此我們把鏈表的頭部作為棧頂。設(shè)top為棧頂指針,即:LinkStack top。
下面各函數(shù)的功能說明如下:
(1)LinkStack Init_LinkStack():建立并返回空的鏈棧;
(2)int Empty_LinkStack(LinkStack top):判斷top所指鏈棧是否空;
(3)LinkStack Push_LinkStack(LinkStacktop,datatypex):將數(shù)據(jù)x壓人top所指鏈棧的棧頂,返回新棧指針;
(4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):彈出top所指鏈棧的棧頂元素x,返回新棧指針。
[函數(shù)]
LinkStaek Init_LinkStack( )
{ returnNULL;
int Empty_LinkStack ( LinkStaek top)
if(top = = NULL) return 1;
else return 0;
LinkStaek Push_LinkStaek( LinkStaektop, datatype X)
{ StaekNode *s;
s=malloc (sizeof(StaekNode) );
(1)= x;
(2)= top;
(3);
return top;
}
LinkStaek Pop_LinkStack (LinkStacktop, datatype * x)
{ StaekNode *p;
if(top = = NULL) return NULL;
else{
* x =(4);
p = top;
(5);
free (p);
return top;
}
}
第2題
【說明】
本題給出四個函數(shù),它們的功能分別是:
1.int push(PNODE*top,int e)是進棧函數(shù),形參top是棧頂指針的指針,形參e是入棧元素。
2.int pop(PNODE*top,int*e)是出棧函數(shù),形參top是棧頂指針的指針,形參e作為返回出棧元素使用。
3.int enQueue(PNODE*tail,int e)是入隊函數(shù),形參tail是隊尾指針的指針,形參e是入隊元素。
4.int deQueue(PNODE*tail,int*e)是出隊函數(shù),形參tail是隊尾指針的指針,形參e作為返回出隊元素使用。
以上四個函數(shù)中,返回值為。表示操作成功,返回值為-1表示操作失敗。
棧是用鏈表實現(xiàn)的;隊是用帶有輔助結(jié)點(頭結(jié)點)的單向循環(huán)鏈表實現(xiàn)的。兩種鏈表的結(jié)點類型均為:
typedef struct node {
int value;
struct node * next;
} NODE, * PNODE;
【函數(shù)1】
int push(PNOOE * top,int e)
{
PNODE p = (PNODE) malloc (sizeof (NODE));
if (! p) return-1;
p->value=e;
(1);
*top=p;
return 0;
}
【函數(shù)2】
int pop (PNODE * top,int * e)
{
PNODE p = * top;
if(p == NULL) return-1;
* e = p->value;
(2);
free(p);
return 0;
}
【函數(shù)3】
int enQueue (PNODE * tail,int e)
{ PNODE p,t;
t= *tail;
p = (PNODE) malloc(sizeof(NODE));
if(!p) return-1;
p->value=e;
p->next=t->next;
(3);
* tail = p;
return 0;
}
【函數(shù)4】
int deQueue(PNODE * tail,int * e)
{ PNODE p,q;
if(( * tail)->next == * tail) return-1;
p= (* tail)->next;
q = p ->next;
* e =q ->value;
(4)=q->next;
if(,tail==q) (5);
free(q);
return 0;
}
第3題
A、使用數(shù)組實現(xiàn)棧時,只需要在數(shù)組中存儲節(jié)點數(shù)據(jù)即可,不需要存儲其他數(shù)據(jù);
B、使用數(shù)組實現(xiàn)棧時,可以將數(shù)組的前兩位用來存儲棧底和棧頂在數(shù)組中的下標(biāo);
C、使用數(shù)組實現(xiàn)棧時,可以用一個包含一個數(shù)組和兩個整型變量的結(jié)構(gòu)來定義;
D、使用數(shù)組實現(xiàn)棧時,棧底必定一直在數(shù)組下標(biāo)為0處;
第4題
A、用鏈?zhǔn)酱鎯Y(jié)構(gòu)存儲的棧稱為鏈棧
B、鏈棧通常用單鏈表來表示
C、鏈棧結(jié)點的結(jié)構(gòu)與單鏈表結(jié)點的結(jié)構(gòu)一樣,由數(shù)據(jù)域data和引用域next兩部分組成。
D、鏈棧相對于順序棧的優(yōu)勢在于鏈棧可以先進先出,而順序棧不能
第5題
A、邏輯函數(shù)表達式的對偶式可能等于其反演式
B、2輸入端異或門一個輸入端為1時,其功能等價于非門
C、用與非邏輯可以實現(xiàn)或邏輯
D、用或非邏輯可以實現(xiàn)與邏輯
第6題
A、可以減少重復(fù)編寫代碼的工程量
B、同一個函數(shù)只可以被調(diào)用一次
C、Blockly支持函數(shù)的定義和使用
D、在程序設(shè)計中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供公共選用
第7題
A、采用非遞歸方式重寫遞歸程序時必須使用棧
B、函數(shù)調(diào)用時,系統(tǒng)要用棧保存必要的信息
C、只要確定了入棧次序,即可確定出棧次序
D、棧是一種受限的線性表,允許在其兩端進行操作
第9題
A、拷貝構(gòu)造函數(shù)是可以重載
B、用一個對象給另一個對象賦值時,拷貝構(gòu)造函數(shù)會被自動調(diào)用
C、用一個對象初始化另一個對象時,拷貝構(gòu)造函數(shù)會被自動調(diào)用
D、創(chuàng)建一個對象時,有可能同時調(diào)用拷貝構(gòu)造函數(shù)和其他構(gòu)造函數(shù)
為了保護您的賬號安全,請在“上學(xué)吧”公眾號進行驗證,點擊“官網(wǎng)服務(wù)”-“賬號驗證”后輸入驗證碼“”完成驗證,驗證成功后方可繼續(xù)查看答案!