8 (905) 200-03-37 Владивосток
с 09:00 до 19:00
CHN - 1.14 руб. Сайт - 17.98 руб.

[Официальное подлинное] Структура данных C Издание языковой издание 5 -е издание 21 -го века Компьютерное базовое практическое планирование Учебные материалы Tsinghua Университет пресса Дэн Венхуа и Шенгли

Цена: 569руб.    (¥31.6)
Артикул: 565376147066

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.

Этот товар на Таобао Описание товара
Продавец:中交盛世图书专营店
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥77.91 401руб.
¥721 295руб.
¥98.41 770руб.
¥28.5513руб.

[满39包邮]
[全国包邮]
[2018-05-24 18:24:00 - 2019-03-31 18:24:00 截止]
[ 下单满就减,赶快购买吧! ]
[ 单笔订单满]39[元 ][包邮][( 包邮地区:辽宁、吉林、黑龙江、北京、天津、河北、山西、山东、上海、江苏、安徽、浙江、江西、湖北、湖南、河南、广东、福建、陕西 ) ]

&[nbsp;书名:][数据结构(C语言版)(第5版)(21世纪高等学校计算机基础实用规划教材)]
&[nbsp;出版社:]&[nbsp;清华大学出版社]
&[nbsp;出版日期:] 2018
&[nbsp;ISBN号:]9787302491095

[本书对常用的数据结构作了系统的介绍,概念论述清晰,注重实际应用。全书共分9章,依次介绍了数据结构的基本概念、线性表、栈和队列、串和数组、树和二叉树、图结构以及查找和排序等基本运算,第9章设计了10个实验,基本涵盖了主要的数据结构与算法。全书用C语言作为算法描述语言,每一章均附有典型例题与小结,便于总结与提高。]

[本书叙述简洁,深入浅出,注重实践和应用,一书两用(理论与实验),主要面向应用型大学计算机类专业的学生,也可以作为大学非计算机专业学生的选修课教材和计算机应用技术人员的自学参考书。]

[无]


[实战性。所有内容都用案例引入,通俗易懂。]

[流行性。书中讲解的都是JavaSE开发过程中最教材+练习册+上机指导]

[53个实例,10道上机实验题,306道复习题]



[目录]





[第1章绪论]


[1.1从问题到程序]


[1.2有关概念和术语]


[1.3算法及算法分析]


[1.3.1算法的特性]


[1.3.2算法的描述]


[1.3.3算法的性能分析与衡量]


[1.4关于数据结构的学习]


[1.5关于本书内容的编写说明]


[本章小结]


[习题1]


[第2章线性表]


[2.1线性表的逻辑结构]


[2.1.1线性表的定义]


[2.1.2线性表的基本操作]


[2.2线性表的顺序存储及其操作的实现]


[2.2.1顺序表]


[2.2.2顺序表基本操作的实现]


[2.2.3顺序表的其他操作举例]


[2.3线性表的链式存储及其操作的实现]


[2.3.1单链表]


[2.3.2单链表基本操作的实现]


[2.3.3循环链表]


[2.3.4双向链表]


[2.3.5单链表的其他操作举例]


[2.4典型应用]


[2.4.1一元多项式的存储表示]


[2.4.2一元多项式的相加运算]


[本章小结]


[习题2]


[第3章栈和队列]


[3.1栈]


[3.1.1栈的定义及其基本运算]


[3.1.2栈的存储结构和基本运算的实现]


[3.1.3栈的应用举例]


[3.1.4栈与递归的实现]


[3.2队列]


[3.2.1队列的定义及其基本运算]


[3.2.2队列的存储结构和基本运算的实现]


[3.2.3队列的应用举例]


[3.3典型例题]


[本章小结]


[习题3]


[第4章串和数组]


[4.1串]


[4.1.1串的基本概念]


[4.1.2串的基本运算]


[4.1.3串的存储结构及其基本运算的实现]


[4.1.4串的其他运算举例]


[4.2数组]


[4.2.1数组的逻辑结构和基本操作]


[4.2.2数组的存储结构]


[4.2.3稀疏矩阵]


[4.2.4矩阵的其他运算举例]


[4.3典型例题]


[本章小结]


[习题4]


[第5章树和二叉树]


[5.1树的概念和基本操作]


[5.1.1树的定义和相关术语]


[5.1.2树的基本操作]


[5.2二叉树]


[5.2.1二叉树的基本概念]


[5.2.2二叉树的主要性质]


[5.2.3二叉树的存储结构与基本操作]


[5.2.4二叉树的遍历]


[5.2.5二叉树的其他操作举例]


[5.3树和森林]


[5.3.1树的存储]


[5.3.2树、森林与二叉树的相互转换]


[5.3.3树和森林的遍历]


[5.4最优二叉树]—&[mdash;哈夫曼树]


[5.4.1哈夫曼树的基本概念]


[5.4.2哈夫曼树的构造算法]


[5.4.3哈夫曼编码]


[5.4.4哈夫曼编码的算法实现]


[5.5典型例题]


[本章小结]


[习题5]


[第6章图]


[6.1图的基本概念]


[6.1.1图的定义和术语]


[6.1.2图的基本操作]


[6.2图的存储结构]


[6.2.1邻接矩阵]


[6.2.2邻接表]


[6.3图的遍历]


[6.3.1深度优先搜索]


[6.3.2广度优先搜索]


[6.4图的应用]


[6.4.1最小生成树]


[6.4.2最短路径]


[6.4.3拓扑排序]


[6.5典型例题]


[本章小结]


[习题6]


[第7章查找]


[7.1查找的基本概念与术语]


[7.2静态查找表]


[7.2.1静态查找表的结构]


[7.2.2顺序查找]


[7.2.3有序表的折半查找]


[7.2.4分块查找]


[7.3动态查找表]


[7.4哈希表]


[7.4.1哈希表与哈希方法]


[7.4.2常用的哈希函数构造方法]


[7.4.3处理冲突的方法]


[7.4.4哈希表的查找算法]


[7.4.5哈希表的性能分析]


[7.5典型例题]


[本章小结]


[习题7]


[第8章排序]


[8.1排序的基本概念]


[8.2三种简单的排序方法]


[8.2.1直接插入排序]


[8.2.2冒泡排序]


[8.2.3简单选择排序]


[8.3希尔排序]


[8.4快速排序]


[8.5堆排序]


[8.6归并排序]


[8.7基数排序]


[8.7.1多关键码排序]


[8.7.2链式基数排序]


[8.8各种排序方法的比较与讨论]


[8.9典型例题]


[本章小结]


[习题8]


[第9章实验]


[实验1顺序表的基本操作]


[实验2链表的基本操作]


[实验3栈的基本操作]


[实验4队列的基本操作]


[实验5字符串的基本操作]


[实验6二叉树的基本操作]


[实验7树的遍历和哈夫曼树]


[实验8图的基本操作]


[实验9排序]


[实验10查找]


[参考文献]



[第3章栈和队列]


[栈和队列是软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同。其特点在于运算受到了限制: 栈按]&[ldquo;后进先出]&[rdquo;或]&[ldquo;先进后出]&[rdquo;的规则进行操作,队列按]&[ldquo;先进先出]&[rdquo;的规则进行操作,故称它们为操作受限制的线性表。]

[3.1栈]

[3.1.1栈的定义及其基本运算]


[栈(Stack)是限制在表的一端进行插入和删除操作的线性表,允许进行插入、删除操作的一端称为栈顶(top),另一个固定端称为栈底。当表中没有元素时称为空栈。]



[图3.1栈的示意图]



[如图3.1所示的栈中有3个元素,进栈的顺序是a1]→a2&[rarr;a3,当需要出栈时其顺序为a3]→a2&[rarr;a1,所以栈又称为]&[ldquo;后进先出]&[rdquo;(LastIn FirstOut,LIFO)或]&[ldquo;先进后出]&[rdquo;(FirstIn LastOut,FILO)的线性表,简称]&[ldquo;LIFO表]&[rdquo;或者]&[ldquo;FILO表]&[rdquo;。]


[注意: LIFO规范的写法有两种,即LastIn FirstOut、Last In,First Out,FILO类似。]

[在日常生活中有很多类似栈的例子,读者可以列举。在程序设计中,经常需要将数据按其保存时相反的顺序来使用,这时就需要用一个栈这样的数据结构来实现。]

[对于栈,常见的基本运算如下:] 

[ 栈的初始化:] 

[函数: Init_Stack (s)]

[初始条件: 栈s不存在。]

[操作结果: 构造了一个空栈。]

[ 判栈空]

[函数: Empty_Stack (s)]

[初始条件: 栈s已存在。]

[操作结果: 若s为空栈,则返回1,否则返回0。]

[ 入栈]

[函数: Push_Stack (s,x)]

[初始条件: 栈s已存在。]

[操作结果: 在栈s的顶部插入一个新元素x,x成为新的栈顶元素,栈发生变化。]

[ 出栈]

[函数: Pop_Stack (s)]

[初始条件: 栈s存在且非空。]

[操作结果: 栈s的顶部元素从栈中删除,栈中少了一个元素,栈发生变化。]

[ 读栈顶元素]

[函数: Top_Stack (s)]

[初始条件: 栈s存在且非空。]

[操作结果: 栈顶元素作为结果返回,栈不发生变化。]

[3.1.2栈的存储结构和基本运算的实现]

[由于栈是运算受限的线性表,因此,线性表的存储结构对栈也是适用的,只是操作不同而已。]

1.&[nbsp;顺序栈]

[利用顺序存储方式实现的栈称为顺序栈。类似于顺序表的定义,栈中的数据元素用一个预设的长度足够的一维数组来实现,即datatype data[MAXSIZE]; 栈底位置可以设置在数组的任意一个端点,而栈顶是随着插入和删除变化的,用一个int ]&[nbsp;top作为栈顶的指针指明当前栈顶的位置,同样将data和top封装在一个结构中,顺序栈的类型描述如下:] 


#define MAXSIZE 100


typedef struct


{datatype&[nbsp;data[MAXSIZE];]


int top;


} SeqStack


[定义一个指向顺序栈的指针:] 


SeqStack *s;


 

[清华大学出版社官方旗舰店]