上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: 1、修改程序清单17.2,使其既能以郑旭又能以逆序显示电影列表。一种方法是修改链表定义使其可以双向遍历;另一种用递归//双向链表#include#include#include#define TSIZE 45struct film{ char title[TSIZE]; int rating; struct film *prev; struct film *next;};int main(void){ struct film *head=NULL; struct film *temp,*current; char input[TSIZE]; puts("Ent... 阅读全文
posted @ 2013-07-17 12:48 tsembrace 阅读(374) 评论(0) 推荐(0)
摘要: 1、定义一个数据类型包含什么?包含数据本身的定义及其操作的定义。2、为什么程序清单17.2中的链表只能沿一个方向遍历?怎样修改struct film的定义才能双向遍历链表?每个节点只记录了下一个节点的地址。strcut film{ char title[TSIZE]; int rating; struct film *previous; //指向前序节点 struct film *next;}3、什么是ADT?抽象数据模型,用户自定义的数据类型,包括数据的存储、组合方式以及可实现的操作。4、QueueIsEmpty()函数以一个指向队列的指针为参数,但它本可以编写成接受一个queue结... 阅读全文
posted @ 2013-07-15 19:31 tsembrace 阅读(505) 评论(0) 推荐(0)
摘要: 第十七章 高级数据表示四、二叉搜索树先梳理一下链表和数组方式对几种操作的利弊特点:a.访问:链表形式,必须从首节点开始找起,直到要访问的节点为止,这个称为顺序访问。而数组方式则方便的多,可直接定位到某个元素,这称为随机访问。b.插入/删除:对于链表形式,插入或删除操作仅需要修改前续和后续节点就可以完成;而数组方式需修改被增加或删除元素后面所有的元素。c.查找/搜索:其实也是一种访问形式。一般情况,对于顺序排列的“数据堆”,可以通过"折半查找法”非常效率的进行查找。可折半查找,首先得定位到中间的元素,对数组而言,因为有下标,很容易定位;而对于链表定位中间元素,首先要知道数据堆里总共有多 阅读全文
posted @ 2013-07-12 20:59 tsembrace 阅读(549) 评论(0) 推荐(0)
摘要: 第十七章 高级数据表示 三、队列ADT 前面通过一个单链表形式来构建一个数据堆,单链表是通过在结点中设置一个指向下一节点的指针成员来实现组合。对于队列形式,有几个特点:1、依然是线性序列;2、只能在队尾部增加节点;3、只能在队首部删除节点。 1、队列ADT的定义描述 2、队列ADT的操作描述及实现 阅读全文
posted @ 2013-07-12 16:09 tsembrace 阅读(425) 评论(0) 推荐(0)
摘要: 第十七章 高级数据表示(一)一、抽象数据类型抽象数据类型(abstract data type:ADT)是指由用户依据实际需求所创建的某种数据类型,它可以是C语言中的任何数据类型,甚至是基本类型,或数组,复杂的就会用到结构。为何说是抽象?是因为ADT并不会是固定某种数据类型,而是依据实际应用需求中提炼出来的某种数据类型的表达方式。那么,如何定义一种ADT呢?在C语言里,定义一种数据类型,包括两方面:一方面是数据存储方式的描述(对取值的限定),另外一方面是对该类型的可使用的操作的定义。比如:定义一个int型数据a,则表示a取值范围是-32768~32767中的整数;同时a可以使用所有对整型数据的 阅读全文
posted @ 2013-07-12 12:51 tsembrace 阅读(549) 评论(0) 推荐(0)
摘要: 1、编写一个程序。请求用户键入日、月和年。月份可以是月份号,月份名或月份缩写。然后程序返回一年中到给定日期的总天数。(1)只考虑月份的数字输入:#include#includevoid eatline();int count_days(struct date p);struct date{ int day; int month; char year[4];};int main(void){ struct date yourday; int days; printf("please input yourday's date:\n"); scanf("%d&q 阅读全文
posted @ 2013-07-03 20:21 tsembrace 阅读(1838) 评论(0) 推荐(0)
摘要: 第14章 结构和其他数据形式基础概念性的内容在谭浩强C的笔记里已经记录过,不再抄记。选出以下重点巩固:1、结构的指定初始化项目C99支持该功能;对于:struct stu{ char name[10]; int age; float score;}可以在定义其结构变量时候初始化该变量的某几项数据,如下:struct stu s1={.name[10]="Tommy",.score=97.5};struct stu s2={.age=15};2、结构数组对于上述stu结构,创建其变量数组:struct stu s[10];成员的引用标识:s[0].name[10];s[9]. 阅读全文
posted @ 2013-07-02 12:46 tsembrace 阅读(462) 评论(0) 推荐(0)
摘要: 6、编写一个产生1000个1到10范围内的随机数的程序。不必保存或打印数字,仅打印每个数被产生了多少次。让程序对10个不同的种子值进行计算。#include<stdio.h>#include<stdlib.h>int sides=10;static int a[10];void f1(int times);int main(void){ int times; int i; extern int a[10]; //可选的引用声明 printf("please input the numbers for times:\n"); scanf("% 阅读全文
posted @ 2013-06-21 12:45 tsembrace 阅读(458) 评论(0) 推荐(0)
摘要: 1、哪一类存储类生成的变量对于包含他们的函数来说是局部变量?答:自动存储类。2、哪一存储类的变量在包含他们的程序运行时期内一直存在?答:静态存储类。3、哪一存储类的变量可以在多个文件中使用?哪一存储类变量只限于在一个文件中使用?答:外部链接的静态存储变量、内部链接的静态存储变量。4、代码块作用域变量具有哪种链接?答:空链接。5、关键字extern的用处?答:一种是对外部文件中外部变量的引用声明;另外一种是对同文件中外部链接或内部链接静态变量的引用声明。6、考虑如下代码段:int *p1=(int *)malloc(100*sizeof(int));考虑最终结果,下面语句有何不同?int *p1 阅读全文
posted @ 2013-06-20 23:09 tsembrace 阅读(1070) 评论(0) 推荐(0)
摘要: 第12章 存储类、链接和内存管理12.1存储类存储类,也可称为存储模型,即一个变量,它在内存中是如何存放,生存多久,以及作用范围。先说明几个名词的含义:12.1.1作用域作用域描述的是一个变量(标识符)可以在程序哪些区域被使用,包括:代码块作用域、函数原型作用域、文件作用域。int x; //此处x作用域为整个程序文件main(void){ int functiona(int b); //此处为函数声明,b只是参数表示,不是特指变量 int a; //a作用域从此处至main函数结束 for(int i=0;i<a... 阅读全文
posted @ 2013-06-20 20:26 tsembrace 阅读(294) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 下一页