加载中
第17章 高级数据表示 编程练习

1、修改程序17.2,使其即能以正序又能以逆序显示电影列表。一种方法是修改链表定义以使链表能被双向遍历;另一种方法是使用递归。 #include <stdio.h> #include <stdlib.h> #include <strin...

第17章 高级数据表示 17.7 二叉搜索树 (第三部分 试用树)

现在已经有了接口和函数实现,我们来使用它们。 程序示例使用菜单来选择向俱乐部成员花名册添加宠物、显示成员列表、报告成员数、核查成员及退出。函数main()很简单,它集中于实质性问题的概...

第17章 高级数据表示 17.7 二叉搜索树 (第三部分 完整包)

下面给出完整的tree.c代码。tree.h和tree.c共同组成树程序包。 tree.c实现文件 /*tree.c --树类型的支持函数*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #include "tre...

2017/09/09 07:04
14
第17章 高级数据表示 17.7 二叉搜索树(第二部分 二叉树分步实现)

下面的任务是实现tree.h中描绘的伟大的函数。InitializeTree()、EmptyTree()、FullTree()和TreeItems()函数比较简单,与列表和队列抽象数据类型中的同类函数差不多。我们重点讨论其余...

第17章 高级数据表示 17.7 二叉搜索树(第一部分ADT 和 接口)

第一部分ADT 和 接口 二叉搜索树是一种结合了折半搜索策略的链接结构。 树中的每一个节点都包含一个项目和两个指向其他节点的(称为子节点,child node)指针。这种构思是每个节点都有两个子...

第17章 高级数据表示 17.6链表和数组

很多编程问题,比如创建一个列表或队列,可以用链表(一个动态分配的结构序列链)或数组来表示。每种形式都有其优势和缺点,所以要根据具体问题的需求来决定选择哪种形式。表17.3总结了链表和...

第17章 高级数据表示 17.5用队列进行模拟

前一章节讲的队列现在可以使用了。很多现实生活中的情形都包含队列。例如,在银行或超级市场的顾客队列,在机场的飞机队列,多任务计算机系统上的任务队列等。可以用队列包来模拟这些情形。 ...

2017/08/23 07:34
14
第17章 高级数据表示 17.4 队列ADT

正如您看到的,用抽象数据类型方法进行C语言编程包含下面三个步骤: 1、以抽象、通用的方式描述一个类型,包括其操作; 2、设计一个函数接口来表示这种新类型; 3、编写具体代码以实现这个接...

第17章 高级数据表示 17.3 抽象数据类型(ADT)

在电影的例子中,数据形成了一个项目列表,其中每一项包含一个片名(C的字符串)和等级(int值)。C中没有符合这个需求的基本类型,所以需要定义一个结构来表示每个项目,然后设计一此方法来...

第17章 高级数据表示 17.2 从数组到链表

您可能会希望可以不确定的添加数据(或者不断添加数据,直到程序内存用完为止),而不用事先指定您会输入多少个项目,也不用让程序分配不必要的大块内存。这一点可以通过在输入每个项目之后调...

第17章 高级数据表示 17.1 研究数据表示

假设您需要创建一个地址薄程序。您将使用何种数据形式来存储信息?因为与每个项目相关的信息有很多类别,所以用一个结构来表示每一个项目显得很适合。如何表示多个项目?是标准的结构数据、动...

第17章 高级数据表示

我们将从研究程序设计的关键部分,即程序表示数据的方式入手。 您已经了解到C的内建数据类型:简单变量、数组、指针、结构以及联合。 但是,寻找正确的数据表示方式不仅仅是选择一种数据类型...

第16章 C预处理器和C库 编程练习

1、开发一个包含您需要使用的预处理器定义的头文件。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "mylib.c" #define MAX 12 #define SUMSQ(x,y)((x)*(x)+(y)...

第16章 C预处理器和C库 16.13 可变参数:stdarg.h

本章前面讨论了可变宏,该宏接受可变个数的参数。 头文件stdarg.h为函数提供了类似的能力。不过使用方法稍微复杂一些。必须按如下步骤进行: 1、在函数原型中使用省略号; 2、在函数定义中创...

第15章 位操作 15.3 C的位运算符

C提供位的逻辑运算符和移位运算符。 15.3.1 位的逻辑运算符 4个位运算符用于整型数据,包括char。将这些运算符称为位运算符的原因是它们对每位进行操作,而不影响左右两侧的位。而常规逻辑运...

第15章 位操作 15.2 其他基数

15.2.1 八进制 八进制(octal)指以8为基数的数制系统。在该系统中一个数的不同位表示8的幂。您可以使用数字0到7.例如,八进制数451(在C中写作0451)代表: 4X8 2 +5X8 1 +1X8 0 =297(以1...

第15章 位操作 15.1 二进制数、位和字节

以2 为基数表示的数字称为二进制数(binary number)。数字2对于二进制数的作用和数字10对于十进制数的作用是相同的。例如,二进制数1101可表示为以下形式: 1X2 3 +1X2 2 +0X2 1 +1X2 0 以十进...

第14章 结构和其他数据形式 14.18 编程练习

1.重做复习题3,但用月份名的拼写代替月份号(别忘了可以使用strcmp())。 #include <stdio.h> #include <stdlib.h> #include <ctype.h> int days(char *p); struct month { char name[...

第14章 结构和其他数据形式 14.13 奇特的声明

C允许您创建精心定制的数据形式。虽然我们坚持使用简单的形式,但是我们觉得应该指出这些可能性。当进行一个声明时,可以添加一个修饰符来修饰名称(或标识符)。 声明时可以使用的修饰符 修...

第14章 结构和其他数据形式 14.12 typedef 简介

typedef工具是一种高级数据特性,它使您能够为某一类型创建您自己的名字。在这方面,它和#define相似,但是它们有3个不同之处: 1、与#define不同,typedef给出的符号名称仅限于对类型,而不...

2017/03/27 05:34
20

没有更多内容

加载失败,请刷新页面

返回顶部
顶部