C语言版数据结构
文章平均质量分 89
OS_windows7
山不厌高,水不厌深,且行且珍惜。
展开
-
第2章_线性表
线性结构的特点是除第一个和最后一个数据元素外每个数据元素只有一个前驱数据元素和一个后继数据元素。线性表是一种最简单的线性结构。线性表的操作特点主要是可以在任意 位置插入和删除一个数据元素。线性表可以用顺序存储结构和链式存储结构存储。用顺序存储结构实现的线性表称作顺序表,用链式存储结构实现的线性表称作链表。链表主要有单链表、循环单链表和双向循环链表三种。顺序表和单链表各有优缺点,并且优缺点刚好相反。线原创 2017-08-16 10:41:10 · 1529 阅读 · 1 评论 -
第9章_排序
排序的基本概念排序是对数据元素序列建立某种有序排列的过程。更确切地说,排序是把一个数据元素序列整理成按关键字递增(或递减)排列的过程。 关键字分主关键字和次关键字两种。对要排序的数据元素集合来说,如果关键字满足数据元素值不同时该关键字的值也一定不同,这样的关键字称为主关键字。换句话说,主关键字是能够惟一区分各个不同数据元素的关键字。不满足主关键字定义的关键字称为次关键字。 排序分内部排序原创 2017-10-09 18:00:18 · 465 阅读 · 0 评论 -
第1章 C语言程序设计
本数据结构系列文章均参考西安交通大学出版的数据结构一书,由朱战立编著。 0.1程序的结构 写文章要考虑文章的结构,编写程序也要考虑程序的结构.程序是处理特定问题的用程序设计语言书写的语句序列.当要处理的问题复杂时,程序将会很长.因此,程序的结构就非常重要. C语言程序的结构一般如下: 函数1 函数2 … 函数n 主函数函数分为库函数和用户自定义函数两大原创 2017-07-16 13:28:05 · 1288 阅读 · 0 评论 -
第8章_图论
图是又一种非线性数据结构。在图结构中,数据元素之间的关系是多对多的,即如果任选一个结点作为初始结点,则图中任意一个结点有多个前驱结点和多个后继结点。图图是由结点集合及结点间的关系集合组成的一种数据结构。图的实现领接矩阵存储结构下图操作的实现例:带权图为 SeqList.htypedef struct { DataType list[MaxSize]; int size;}Se原创 2017-09-28 14:38:01 · 528 阅读 · 0 评论 -
第5章_数组
数组是一种常用的数据结构。高级程序设计评议都提供了支持数组的基本方法。数组分静态数组和动态数组。静态数组和动态数组的实现机制相似,只是在程序设计时向系统申请内在空间的时间不同。数组数组是n(n>1)个相同数据类型的数据元素a0,a1,a2,…,a(n-1)构成的占用一块地址连续的内存单元有限序列。数据集合: 数据的数据集合可以表示为a0,a1,a2,…,a(n-1),每个数据元素的数据类型为抽象数原创 2017-09-12 18:13:42 · 399 阅读 · 0 评论 -
第4章_字符串
在用计算机进行非数值处理问题时经常要用到串。串也是一种线性结构。与线性表不同的是:串的操作特点是一次操作干个数据元素,即一个子串。串可以用顺序存储结构和链式存储结构存储。串的顺序存储结构空间效率和时间效率都更高。模式匹配是串最重要和最复杂的一个操作。Brute – Force和KMP算法是两种最经常使用的串的模式匹配算法。C语言的串函数1. 串长度 int strlen(char*str)2.原创 2017-09-07 11:06:23 · 688 阅读 · 0 评论 -
第7章_树和二叉树
数据结构可分为线性结构、树型结构和图型结构三大类。前几章讨论的线性表、堆栈、队列、串和数组都是线性结构。树型结构中每个结点只允许有一个直接前驱结点,但允许有一个以上直接后继结点。树型结构有树和二叉树两种。二叉树是最多只允许有两个直接后继结点的有序树。树的操作实现比较复杂,但树可以转换为二叉树进行处理。树树的定义树是由n(n>=0)个结点构成的集合。n=0的树称为空树;对n>0的树T,有:(1)有一个原创 2017-09-25 17:47:09 · 740 阅读 · 0 评论 -
第6章_递归
递归算法不是一种数据结构,而是一种有效的算法设计方法。递归的概念若一个算法直接地或间接地调用自己本身,则称这个算法是递归算法。 递归算法 用把问题分解为形式更加简单的子问题的方法来求解问题。递归算法既是一种有效的分析问题的方法,也是一种有效的算法设计方法。递归算法是解决许多复杂应用问题的重要方法。递归算法的执行过程例1: 计算阶乘函数的递归算法,并给出n = 3时递归算法的执行过程。#inclu原创 2017-09-13 17:42:28 · 1277 阅读 · 0 评论 -
第3章_堆栈和队列
堆栈和队列都是特殊的线性表。线性表、堆栈和队列三者的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的插入和删除操作不受限制,而堆栈只能在栈顶插入和删除,队列只能在队尾插入在队头删除。堆栈和队列都可以分别用顺序存储结构和链式存储结构。顺序队列通常采用顺序循环队列方法实现,因为顺序循环队列可以避免顺序队列的“假溢出”问题。 堆栈和队列在各种类型的软件中应用十分广泛,堆栈可以用来完成数据原创 2017-08-17 18:14:15 · 534 阅读 · 0 评论 -
第10章_查找
查找是对数据进行操作或处理时经常使用的操作。查找是在一个数据元素集合中查找关键字等于某个给定关键字数据元素的过程。在一个数据元素集合中进行查找的方法很多,主要有静态查找、动态查找和哈希表查找等方法。查找算法的优劣对计算机应用系统的效率影响很大。静态查找表静态查找表主要有顺序表、有序顺序表和索引顺序表三种结构。顺序表在顺序表上查找的基本思想是:从顺序表的一端开始,用给定数据元素的关键字逐个与顺序表中各原创 2017-10-11 16:55:06 · 622 阅读 · 0 评论