高级数据表示

抽象数据类型(ADT)

链表

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #define TSIZE 45
 5
 6 struct film
 7 {
 8     char title[TSIZE];
 9     int rating;
10     struct film * next;
11 };
12
13 int main(void)
14 {
15     struct film * head = NULL;
16     struct film * prev, * current;
17     char input[TSIZE];
18
19     puts("Enter first movie title: ");
20     while(NULL != gets(input) && ‘\0‘ != input[0])
21     {
22         current = (struct film *)malloc(sizeof(struct film));
23         if(NULL == head)
24             head = current;
25         else
26             prev->next = current;
27         current->next = NULL;
28         strncpy(current->title, input, TSIZE);
29         current->title[TSIZE - 1] = ‘\0‘;
30         puts("Enter your rating <0-10>: ");
31         scanf("%d", &current->rating);
32         while(‘\n‘ != getchar())
33             continue;
34         puts("Enter next movie title (empty line to stop): ");
35         prev = current;
36     }
37     if(NULL == head)
38         printf("No data entered. ");
39     else
40         printf("Here is the movie list: \n");
41     current = head;
42     while(NULL != current)
43     {
44         printf("Movie: %s Rating: %d\n", current->title, current->rating);
45         current = current->next;
46     }
47     current = head;
48     while(NULL != current)
49     {
50         free(current);
51         current = current->next;
52     }
53     printf("Bye!\n");
54
55     return 0;
56 }
时间: 2024-08-28 16:44:34

高级数据表示的相关文章

C Primer Plus之高级数据表示

 抽象数据类型(ADT)    类型是由什么组成?一个类型(type)指定两类信息:一个属性集和一个操作集. 所以您想定义一个新的数据类型.首先,您需要提供存储数据的方式,可能是通过设计一个结构.第二个,需要提供操作数据的方式. 计算机科学已经研究出一种定义新类型的成功方法.这种方法使用3个步骤来完成从抽象到具体的过程: 为类型的属性和可对类型执行的操作提供一个抽象的描述.这个描述不应受任何特定实现的约束,甚至不应受到任何特定编程语言的约束.这样一种正式的抽象描述被称为抽象数据类型(ADT) 开

C Primer Plus(第五版)12

第 12 章 存储类, 链接和内存管理 在本章中你将学习下列内容 . 关键字: auto, extern, static, register, const, volatile, restricted. . 函数: rand(), srand(), time(), malloc(), calloc(), free() . 在 C 中如何确定变量的作用域 ( 它在多大范围内可知) 以及变量的生存期 (它存在多长时间). . 设计更复杂的程序. C 的强大功能之一在于它允许你控制程序的细节. C 的内

C Primer Plus(第五版)中文版.pdf

下载地址:网盘下载 内容简介 编辑 本书全面讲述了C语言编程的相关概念和知识. 全书共17章.第1.2章学习C语言编程所需的预备知识.第3到15章介绍了C语言的相关知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等等,知识内容都针对C99标准:另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求.第16章和第17章讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容.附录给出了各章

时间序列数据挖掘综述

时间序列数据挖掘综述 http://hi.baidu.com/superkiki1989/item/33d609ec4d936204560f1d14 一.引言 时间序列是指按时间顺序排列的一组数据,是一类重要的复杂数据对象.作为数据库中的一种数据形式,它广泛存在于各种大型的商业.医学.工程和社会科学等数据库中,如股票价格.各种汇率.销售数量.产品的生产能力.天气数据等.大量时间序列数据真实地记录了系统在各个时刻的所有重要信息,若能改进某种高效的数据处理方法,发现其中各时间序列之间的相互关系,必将

《C Primer Plus(第6版)(中文版)》普拉达(作者)epub+mobi+azw3

内容简介 <C Primer Plus(第6版)中文版>详细讲解了C语言的基本概念和编程技巧. <C Primer Plus(第6版)中文版>共17章.第1.2章介绍了C语言编程的预备知识.第3~15章详细讲解了C语言的相关知识,包括数据类型.格式化输入/输出.运算符.表达式.语句.循环.字符输入和输出.函数.数组和指针.字符和字符串函数.内存管理.文件输入输出.结构.位操作等.第16章.17章介绍C预处理器.C库和高级数据表示.本书以完整的程序为例,讲解C语言的知识要点和注意事项

《C Primer Plus 》动态链表删除的一个错误

<C Primer Plus>确实是一本伟大的书,但尽信书不如无书,作者Stephen Prata可能也希望他的读者能找到些许他在不经意中出现的小错误吧! 在该书第五版17章"高级数据表示"中,程序清单17.2给出如下代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #define TSIZE 45 #define LEN sizeof(struct film)

一起读经典《C Primer Plus(第6版)中文版》

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书 --异步小编 今天我们要读的是一本经久不衰的C语言畅销经典教程,自1984年第一版诞生以来,它持续畅销了34年,升级了6个版本,是程序员们学习C语言不可多得的良师益友,它就是<C Primer Plus(第6版)中文版>. 1.   C语言的历史和变革 提到C语言,就绕不开计算机编程语言的演变与进化.这足以证明C语言在整个编程领域举足轻重的地位.C语言不是凭空出现的,它的背后总是伴随

C Primer Plus第6版_源代码+练习答案

下载地址:网盘下载 C Primer Plus(第6版)中文版详细讲解了C语言的基本概念和编程技巧.<C Primer Plus(第6版)中文版>共17章.第1.2章介绍了C语言编程的预备知识.第3~15章详细讲解了C语言的相关知识,包括数据类型.格式化输入/输出.运算符.表达式.语句.循环.字符输入和输出.函数.数组和指针.字符和字符串函数.内存管理.文件输入输出.结构.位操作等.第16章.17章介绍C预处理器.C库和高级数据表示.本书以完整的程序为例,讲解C语言的知识要点和注意事项.每章末

C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等,知识内容都针对C99标准:另外,<C Primer Plus(中文版)(第5版)>强化了对指针的讨论,并引入了动态内存分配的概念,也讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容. 下载地址:点我 编辑推荐 作为