20xx上半年程序员模拟试题一下午答案word版(编辑修改稿)内容摘要:

(PNODE *tail, int *e)是出队函数,形参 tail是队 尾指针的指针,形参 e 作为返回出队元素使用。 以上四个函数中,返回值为 0 表示操作成功,返回值为 1 表示操作失败。 栈是用链表实现的;队是用带有辅助结点 (头结点 )的单向循环链表实现的。 两种链表的结点类型均为: typedef struct node{ int value; struct node *next; }NODE, *PNODE; 【函数 1】 int push(PNODE *top, int e) { PNODE p=(PNODE)malloc (sizeof(NODE)); if (!p) return1; p value =e; (1) ; . *top=p; return 0; } 【函数 2】 int pop (PNODE *top, int *e) { PNODE p=*top; if(p==NULL)return1; *e=pvalue; (2) ; free(p); return 0; } 【函数 3】 int enQueue (PNODE *tail, int e) {PNODE p, t; t=*tail; p=(PNODE)malloc(sizeof(NODE)); if(!p)returnl; 软考社区 ()中国软考资讯、交流中心。 提供 软考 历年试题,模拟试题, 电子教程 , 软考新闻 , 各地软考办 , 软考经验心得 等。 软考社区论坛: pvalue=e; pnext=tnext; (3) ; *tail=p; return 0; } 【函数 4】 int deQueue(PNODE *tail, int *e) {PNODE p, q; if((*tail)next==*tail)return 1; p=(*tail)next; q=pnext; *e=qvalue; (4) =qnext; if(*tail==q) (5) ; free(q); return 0; } ●试题三 【答案】 (1)pnext=*top(2)*top=pnext 或 *top=(*top)next (3)tnext=p 或 (*tail)next=p(4)pnext 或 (*tail)nextnext (5)*tail=p 或 *tail=(*tail)next 【解析】 (1)插入结点 p 后, p 应当指向插入前头结点,所以填入 pnext=*top。 (2)出栈后,头指针应指向它的下一结点,所以填入 *top=pnext 或 *。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。