ADT 数据结构
文章平均质量分 62
爱吃的小花猫
来者皆客
展开
-
实验4 图的基本操作
一、题目编制一个演示用邻接矩阵和邻接表存储结构实现的图的深度优先遍历和广度优先遍历算法的程序。另附扩展实现(1:有向图2:无向图3:有向网4:无向网) 4种类型的图的(1.邻接矩阵,2.邻接表,3.深度优先搜索,4.广度优先搜索,5.最小生成树,6.拓扑排序,7.关键路径,8.从某个源点到其余各顶点的最短路径,9.每一对顶点之间的最短路径)图的9种实现程序。(附源代码于尾页//程序1 //原创 2015-03-12 03:01:17 · 1769 阅读 · 0 评论 -
NULL 和 0
Question:What is the difference from NULL and "0"?Example:return NULL;return 0;Answer:Conceptually, zero (0) is a number, and NULL is a value that represents "no value". As such, 0 ca原创 2015-04-01 14:32:12 · 2634 阅读 · 3 评论 -
各种数据结构与算法知识入门经典(不断更新)
自荐者和推荐者请留言基本算法贪心算法:贪心算法 作者:独酌逸醉 贪心算法精讲 作者:3522021224递归和分治:递归与分治策略 作者:zhoudaxia图论图的遍历(DFS和BFS): 图的遍历 作者:jefferent最小生成树(Prim算法和Kruskal算法): 贪心算法--最小生成树 作者:独酌逸醉Dij原创 2015-03-11 16:06:48 · 1667 阅读 · 0 评论 -
数据结构和算法面试总结
1、反转一个链表。循环算法。 List reverse(List l) { if(!l) return l; list cur = l.next; list pre = l; list tmp; pre.next = null; while ( cur ) { tmp = cur; cur = cur.next; tmp.next = pre pre =原创 2015-03-12 12:38:35 · 15268 阅读 · 1 评论 -
空间复杂度
空间复杂度一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分。 (1)固定部分。这部分空间的大小与输入/输出的数据的个数多少、数值原创 2015-03-12 02:32:25 · 706 阅读 · 0 评论 -
C++ tree(1)
建立与基本操作二叉树是数据结构中的树的一种特殊情况,有关二叉树的相关概念,这里不再赘述,如果不了解二叉树相关概念,建议先学习数据结构中的二叉树的知识点准备数据定义二叉树结构操作中需要用到的变量及数据等。#define MAXLEN 20 //最大长度typedef char DATA; //定义元素类型struct原创 2015-03-13 02:24:45 · 744 阅读 · 0 评论 -
ADT Example
Example Data Types: Integer, and CharacterExample (Integer Data Type)The integer data type can consist of:data values: −∞,...,−2,−1,0,1,2,...,∞operations: +,−,∗,%,/,...Example (C原创 2015-03-13 10:39:28 · 51480 阅读 · 0 评论 -
哈希算法
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数class原创 2015-03-13 02:16:38 · 64330 阅读 · 1 评论 -
Stack的三种含义
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样一层层堆起来,后面加入原创 2015-03-12 13:15:20 · 32207 阅读 · 3 评论 -
第二章 Big O notation
第二章 Big O notation计算机的计算过程中,基本上都是一些复杂的计算,数以千计,数以万计或是数以亿计的计算,那么如何计算和总结为让我们更加简单易懂的语言呢,与成绩分层是一个道理,A是好的,B次好等等等等,那么我们就引入了big O notation这个概念。在这里,我们程序员如果要进行编程,我们不希望计算机花费大量的时间去进行一个运算,对于我们和用户来说,我们要原创 2015-03-07 14:00:32 · 5719 阅读 · 0 评论 -
第二章 Big O notation 进阶课程
第二章 Big O notation 进阶课程在这一章中,我们将会了解到算法的基础----Counting primitive operation,什么是primitive operation:The following are all primitive operations:1. Assigning a value to a variable2. Calling ano原创 2015-03-07 14:02:12 · 4422 阅读 · 0 评论 -
第二章 Big O notation 试题以及讲解 (包会)
这里列出了一些难做的题或是易错的题,简单的我就没有过多的解释,但是如果大家有任何问题都可以私信我或是评论一下,我会尽量即时的解答问题或是疑问的。int x=0; for(int i=4*n; i>=1; i--) x=x+2*i; O(n)The loop runs O(n) times and does O(1) work per iter原创 2015-03-07 14:24:35 · 5384 阅读 · 1 评论 -
实验3
一、题目编制一个求子串的程序。二、需求分析 本程序在Windows环境下用用Visual C++编写。三、概要设计定长顺序存储:用一组地址连续的存储单元存储串值的字符序列,类似于线性表的顺序存储结构。 可以用定长数组来描述: 四、详细设计#define MAXSTRLEN 255 // 用户可在255以内定义最大串长 typedef原创 2015-03-12 02:58:52 · 443 阅读 · 0 评论 -
实验5 附加
六、 源程序(带注释)#include#include#include#define MAX 100 //定义数组的长度#define M 5 //希尔排序的趟数int sort[MAX]; //定义要排序的数组int move,compare;//移动次数,比较次数/*********************起泡排序********************原创 2015-03-12 03:03:31 · 510 阅读 · 0 评论 -
实验5 排序
一、题目定义一个无序序列,使用插入排序、希尔排序、快速排序及堆排序等各种内部排序方法使之有序。二、需求分析 本程序在Windows环境下用用Visual C++编写,完成程序内部排序算法的实现:三、概要设计主函数中调用Bubble_Sort();//起泡排序 InsertSort();//直接插入排序 S原创 2015-03-12 03:03:28 · 688 阅读 · 0 评论 -
实验4 附加
/*扩展实现源代码*/# include # include # include # define True 1# define False 0# define OK 1# define ERROR 0# define OVERFLOW -2# define NULL 0# define MAXLEN 10原创 2015-03-12 03:02:25 · 405 阅读 · 0 评论 -
实验1 线性表的链表设计与实现
一、题目编制一个演示单链表插入、删除、查找等操作的程序。二、需求分析 本程序在Windows环境下用用Visual C++编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都是整数② 输出的原创 2015-03-12 02:51:19 · 1643 阅读 · 0 评论 -
实验2 表达式求值
一、题目编制一个表达式求值的程序。二、需求分析 本程序在Windows环境下用用Visual C++编写,要把一个表达式翻译成正确求值的一个机器指令序列,或者直接对表达式求值首先要了解算术四则运算的规则。即: 1)先乘除,后加减; 2)从左算到右;3)先括号内,后括号外。算符优先法就是根据这个运算优先关系的规定来实现对表达式的编译或解释执行的。原创 2015-03-12 02:55:03 · 1310 阅读 · 0 评论 -
queue C++
#include using namespace std;class DequeEmptyException{public: DequeEmptyException() { cout "Deque empty" endl; }};// Each node in a doubly linked listclass Node{publi原创 2015-04-01 06:59:22 · 1674 阅读 · 0 评论