2003年程序员下午试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2003年程序员下午试题及答案
①int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

②int pop(PNODE *top,int oe)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

③int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

④int deQueue(PNODE *tail,int *e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为0表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。

两种链表的结点类型均为:
typedef struct node{
int value;
struct node *next;
}NODE,*PNODE;
[函数①]
int push(PNODE *top,int e)
{
PNODE p = (PNODE)malloc(sizeof(NODE)); if(!p) return –1;
p- value = e;
___(1)___;
*top = p;
return 0;
}
[函数②]
int pop(PNODE *top,int *e)
{
PNODE p = *top;
if(p == NULL) return –1;
*e = p- value;
___(2)____;
free(p);
return 0;
}
[函数③]
int enQueue(PNODE *tail,int e) { PNODE p,t;
t = *tail;
p = (PNODE)malloc(sizeof(NODE));if(!p) return –l;
p—value = e;
p—next = t—next;
____(3)____;
*tail = p;
return 0;
}
[函数④]
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;
)
参考答案
试题一
(1) H
(2) L
(3) ENG(L) 或ENG(I+1)
(4) CN(L) 或CN(I+1)
(5) ②
试题二
(1) strlen(s) + s
(2) *p == ch
(3) ptr = ptr - left
(4) ptr = ptr- right
(5) ptr
试题三
(1) u = v,v = v- next 或u = v,v = u- next
(2) v == base 或base- no == n
(3) v- no p- no 或v- no = p- no
(4) base = v
(5) v- next = p
试题四
(1) k != 0 或k
(2) (j-k+n) % n
(3) j
(4) a[t] 或*(a+t)
(5) i++
试题五
(1) p- next = *top
(2) *top = p- next 或*top = (*top)- next
(3) t- next = p 或(*tail)- next = p
(4) p- next 或(*tail)- next- next
(5) *tail = p 或*tail = (*tail)- next 2003年程序员下午试题及答案相关内容:。

相关文档
最新文档