数据结构C语言
学分
apprentice of CS
展开
-
数据结构C语言 Part1 引入篇
什么是数据结构呢?没有官方定义,不过数据结构+算法==程序。而很好的Data Structure(本学期以后简称DS)可以带来最优效率的算法。解决问题的效率,和数据的组织方式、空间的利用效率以及算法的巧妙程度有关。应该说,算法和数据结构都很重要。按学校的安排,我们先学DS再学Algorithm。我们先看几个例子引入一下:例子一:写程序计算给定多项式在某一个给定的点的值:介绍与一些知识储备:...原创 2018-10-06 21:14:43 · 335 阅读 · 0 评论 -
数据结构C语言 Part2 顺序表和链表
老师链表都讲完了,而我连一次vs都还没有打开。。。于是周三下午强行学了一波数据结构,然后在这里展示一下思路吧。线性表,Linear List,是由同类型的数据元素构成的有序序列的线性结构。按照存取的结构不同,分为顺序表和链式表。实验一要求我们小组写一个基于线性表和链表的图书管理系统,这是一个大程序,一共有20个操作。为了便于说明和组内分工,我先把程序分成了线性表和链表部分两个解决方案,...原创 2018-11-01 15:01:43 · 375 阅读 · 0 评论 -
数据结构C语言 番外篇 ADT的表示与实现(以复数为例)
前言:ADT与开发————————————————————————————————————————一些基本的操作我们就不提了,提一提我觉得比较新的和有价值的东西。1.基本操作的算法都由如下格式描述,工程上我们也这么写函数类型 函数名(参数表){//算法的描述,参数接口的说明语句序列}关于形参表,我们采用C++的引用方法,关于c++的引用,我周末弄完答辩和英语...原创 2018-10-09 20:22:30 · 4407 阅读 · 0 评论 -
数据结构C语言 Part3 栈与队列
咕咕咕了很久的数据结构,趁着复习赶紧捡一下。今天我们研究一下栈和队列:栈是一种特殊的线性表,删除和插入操作受限,遵循后进先出First in last out的原则(就像网球筒一样,先进后出)。习惯上,我们称表头端(先进的部分)为栈底bottom or base,表尾端为栈顶top,插入和删除都在栈顶top进行。在栈顶插入元素我们叫做push,在栈顶删去元素我们叫做pop。作为线性表,当然...原创 2018-10-23 00:11:43 · 363 阅读 · 0 评论 -
数据结构C语言 Part5 树与二叉树
定义:树(Tree)是n(n≥0)个结点的有限集,它或为空树(n = 0);或为非空树,对于非空树T:(1)有且仅有一个称之为根的结点;(2)除根结点以外的其余结点可分为m(m>0)个互不相交的有限集T1, T2, …, Tm, 其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。对于树,我们要明白一些最基本的术语:根节点(root),叶子(终端节点),森林(多颗...原创 2018-11-07 20:12:25 · 1989 阅读 · 0 评论 -
数据结构C语言 Part4 串、数组和广义表
首先,我们目前提到的(Part1-Part4)都是线性结构。这一节,我们主要是要掌握:1. 了解串的存储方法,理解串的两种模式匹配算法,重点掌握BF算法。2. 明确数组和广义表这两种数据结构的特点,掌握数组地址计算方法,了解几种特殊矩阵的压缩存储方法。3.掌握广义表的定义、性质及其GetHead和GetTail的操作。我们先来看看串(string):其参数有串名,串值,串长...原创 2018-11-18 16:27:37 · 351 阅读 · 0 评论 -
数据结构C语言 Part6 图
学习目标:1.掌握:图的基本概念及相关术语和性质2.熟练掌握:图的邻接矩阵和邻接表两种存储表示方法3.熟练掌握:图的两种遍历方法DFS和BFS 4.熟练掌握:最短路径算法(Dijkstra算法)5.掌握:最小生成树的两种算法及拓扑排序算法的思想基本概念储备:Graph=(V,E),and graph is generally divided into directed ...原创 2018-12-03 00:00:41 · 308 阅读 · 0 评论