《C primer plus 第五版》

作者:Stephen Prata  出版社:人民邮电出版社

题目 题型
修改程序清单17.2,使其既能以正序又能以逆序显示电影列表。一种方法是修改链表定义以使链表能被双向遍历;另一种方法是使用递归。 问答
假设 list.h 如下定义列表:   typedef struct list {     Node * head;    /* 指向列表首  */     Node * end;     /* 指向列表尾 问答
假设list.h如下定义列表:   #define MAXSIZE 100 typedef struct list {     Item entries[MAXSIZE];    /*项目数组    * 问答
重写以下程序,使其用两个队列模拟两个摊位。 问答
编写一个程序,让您输入一个字符串。该程序将此字符串中的字符逐个地压入一个栈(请参见复习题5),然后弹出这些字符并显示。结果是将字符串按逆序显示。 问答
写一个接受3个参数的函数。这3个参数为:存有已排序的整数的数组名,数组元素个数和要查找的整数。如果该整数在数组中,函数返回1:否则返回0。函数用折半搜索法实现。 问答
编写一个程序,能打开、读入一个文本文件并统计文件中每个单词出现的次数。用改进的二叉搜索树存储单词及其出现的次数。程序读入文件后,会提供一个有三个选项的菜单。第一个选项为列出所有的单词连同其出现的次数。第二个选项为让您输入一个单词,程序报告该单词在文件中 问答
修改宠物俱乐部程序,使所有同名的宠物存储在相同节点中的一个列表中。当用户选择查找一个宠物时,程序要求用户给出宠物名,而后列出所有具有此名字的宠物(连同它们的种类)。 问答
定义一个数据类型包含什么? 问答
为什么程序清单17.2中的链表只能沿一个方向遍历?怎样修改struct film的定义才能双向遍历链表? 问答
什么是ADT? 问答
QueueIsEmpty( )函数以一个指向队列的指针为参数,但它本可以编写成接受一个queue结构作为参数。两种方式的优缺点各是什么? 问答
栈(stack)是列表家族的另一种数据形式。在栈中进行添加和删除只能在列表的一端进行。项目被描述成“压入”栈顶和“弹出”堆栈。所以,栈是一种LIFO结构,即后进先出(Last In, First Out)。 a. 设计一个栈ADT。 b. 问答
当在一个含有3个项目的列表中判断某一特定项目不在此列表中时,顺序搜索和折半搜索需要进行的比较次数最多分别为多少次?当列表中有1023个项目时呢?65535个项目时呢? 问答