DS001-测试冒泡排序的运行时间

本程序演示如何测试一段程序的运行时间。以冒泡排序算法为例。#include "time.h" //与时间相关的函数#include "stdlib.h" //rand()函数在此库中#include "stdio.h" //输入输出相关函数 void BubbleSort(int *a, int n){//冒泡排序, a是指针,代表连续空间的首地址,n表示有n个元素 for(int i=1;i<=n-1;i++) { for(int j=0;j<=n-i-1;j
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS002-矩阵的乘法

本程序演示矩阵的乘法
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS003-集合的并集-用数组存储集合的元素-分别用数组-结构体-类模板实现

用数组作为容器,存储集合LA、LB的元素编程计算LC=LA+LB; 即求LA和LB的并集。算法:把LA中元素拷贝到LC中,对于LB中每个元素,如果LC中不存在,则将其放入LC中。用C语言编程实现:#include "stdlib.h" #include "stdio.h" int LA[]={3,4,5,7};int na=4;int LB[]={1,2,4,6,8};int nb=5;int LC[100];int nc=0;int find(i...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS004-结构体模板描述动态顺序表

具有一对一关系的数据逻辑上构成线性结构,逻辑上用线性表表示。线性表的概念和特点,我就不罗嗦了。线性表的物理存储可以用顺序表和链表,我们这里用C++的结构体模板作为抽象数据类型,实现顺序表的部分操作,使初学者能够从代码的级别掌握顺序表的思想。#include<iostream>//C++的输入输出using namespace std; template<typename ElemType> struct SqList{ ElemType *elem;//
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS004-C++模板类-顺序表-超级数组-占用连续空间-随机存取-动态扩展空间-尾部插入效率高

具有一对一关系的数据逻辑上构成线性结构,逻辑上用线性表表示。线性表的概念和特点,我就不罗嗦了。线性表的物理存储可以用顺序表和链表,我们这里用C++的模板类作为抽象数据类型,实现顺序表的部分操作,使初学者能够从代码的级别掌握顺序表的思想。#include<iostream> using namespace std;template<typename T>class vec{ T *elem; int listsize; int len; publi
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

学习数据结构-补充部分C++知识-基础不牢-地动山摇

各位同学: 本学期的数据结构课程授课过程中采用了一点点C++的知识,目的是为了简化、方便代码的编写。涉及的知识点有如下几个:1、文件扩展名的变化C语言的源代码文件扩展名为c,C++语言的源代码文件扩展名为cpp2、头文件的变化C语言采用scanf、printf作为输入输出函数,格式繁杂,容易出错,对应的头文件格式为:#include<stdio.h>C++语言采用cin、cout作为输入输出函数,格式简单,对应的头文件格式为:#include &l...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS005数据结构-单链表实现原理探究-C++模板类实现

顺序表在插入和删除数据时需要移动其他数据,效率低。链表可以克服该缺点。本篇介绍单链表的基本原理。
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS005-C++模板类实现-单向循环链表

当单链表的最后一个结点的next域存储头结点的地址时,就构成了单向循环链表。实现时需要注意的地方:1、初始化时,单向循环链表中只有头结点,next域指向自身;2、判断p是否为尾结点的条件是:p->next是否和头结点head相等#include "stdafx.h"#include <iostream>using namespace std;template<typename T>class list{//单向循环链表 struct n.
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS005-C++模板类实现--双向循环链表

用C++的类模板实现了一个双向循环链表的部分功能,如插入数据、删除数据、得到第i个元素的地址,查找元素x是否存着等// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;template<typename T>class list{//双向循环链表 struct node { T data;
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS006-栈的原理-操作受限的线性表-C++ STL 栈模板stack

本篇先介绍顺序栈、链栈的原理,然后介绍C++STL栈模板的简单用法。
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS007-队列的原理-操作受限的线性表-queue的使用

本篇介绍基于顺序表的队列和基于单链表的队列的原理和实现。最后介绍一下C++ STL 模板库 queue的使用。一、什么是队列有些应用,处理的对象是线性关系,用线性表存储,但这些应用又有自己的特点,在一端进行插入操作,在另一端进行删除操作,中间不允许插入删除就像生活中的队列一样。插入数据的一端称为队头,删除数据的一端称为队尾。有两种存储方式,顺序的和链式的,那么队列也有两类实现方式,一类是基于顺序表的,一类是基于链表的。我们下面介绍基于顺序表的循环队列,基于单链表的队列
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS007-二叉树-伪指针表示法-先根-中根-后根遍历

本篇介绍二叉树的顺序表表示法,及其先、中、后根遍历。以下面这棵二叉树为例。对应的伪指针存储结构为:整体是一个顺序表,每个元素是一个结构体,包含本身元素,左孩子的下标,右孩子的下标。也可以包含双亲结点的下标,此例没有包含。参考代码如下:#include "stdafx.h"#include<iostream> using namespace std;template<typename T>class tree{//基于伪指针的二...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS007-二叉树-二叉链表表示法-先根-中根-后根遍历

本篇介绍二叉树的二叉链表表示法,及其先、中、后根遍历。以下面这棵二叉树为例。#include "stdafx.h"#include<iostream> using namespace std;template<typename T> class tree{//基于二叉链表的二叉树 struct node { T data; node *lchild; node *rchild; }; node *root; node a, b.
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS007-二叉树-顺序表表示法-先根-中根-后根遍历

本篇介绍二叉树的顺序表表示法,及其先、中、后根遍历。以下面这棵二叉树为例。对应的顺序存储结构为: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

DS005数据结构-单链表实现原理探究-针对严蔚敏老师教材的示例

一、顺序表那么好,为什么还需要链表顺序表的缺点:•顺序表的除了表尾外其他位置插入和删除元素需要移动其他元素,效率低;平均时间复杂度为O(n)。•顺序表需要连续的空间,当数据量比较大时,如果没有足够的连续空间,顺序表失效!!为解决该缺点,设计了链表。链表的插入和删除不需要移动其他元素,插入删除效率高;但失去了随机存取的优势。另:这是一种颠覆性创新,另起炉灶,不在顺序存储的框架内修修补补!!单链表是最简单的链式结构,由此发散、引申,可以构造更复杂的结构,比如树、图。基础不..
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

约瑟夫环问题-顺序表-删头添尾法

一、问题描述 有15个人围成一圈,顺序从1到15编号。从第一个人开始报数,凡报到n的人退出圈子。用C语言写出程序,输入n(n>1)的值,输出最后留在圈子里的人的编号。二、算法描述void main( ){构建顺序表 L把1-15这15个数逐个插入到 L 的尾部输入nWhile(顺序表 L 中元素多于一个){for(i=1;i<n;i++){取L[0]放到L的尾部;删除L[0]}输出L[0]删除L[0];}...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

约瑟夫环问题-链表-删头添尾法

一、问题描述 有15个人围成一圈,顺序从1到15编号。从第一个人开始报数,凡报到n的人退出圈子。用C语言写出程序,输入n(n>1)的值,输出最后留在圈子里的人的编号。二、算法描述void main( ){构建链表 L把1-15这15个数逐个插入到 L 的尾部输入nWhile(链表 L 中元素多于一个){for(i=1;i<n;i++){取L第一个元素 放到L的尾部;删除L第一个元素}输出L第一个元素删除L第一个元素...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

csdn博客不能内嵌mp4解决方案-转换成gif动图

有些算法,用伪代码描述起来也不太容易理解,如果能用动画或者视频的形式,效果会更好。但是,csdn的博客中不能内嵌mp4,只能上传图片。而gif是动图,可以显示多帧。下面我们介绍怎样把动态演示做成gif动图。1、可以在ppt上用多张ppt形成动态演示过程;2、播放ppt时,用录屏软件录下来,如傲软录屏等,存成mp4文件3、把mp4文件用格式工厂转换成gif动图4、把gif动图嵌入到csdn博客中。...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

3.12笔记

1,如何交换两个值,不用第三个变量?①代入第三个变量法:int main(){ int num1 = 10; int num2 = 20; int num = 0; cout << num1 << '\t' << num2<<endl; num = num1; num1 = num2; num2 = num; cout <...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0

3.25笔记

c语言是非常接近计算机体系结构,更能感受到计算机软硬件特性。c支持跨平台。c非常经典,经常用于底层开发和linux os。(vs修改代码时候覆盖之后代码是因为默认使用ovr模式覆盖书写,可以直接按键盘上的Ins键切换为插入模式即可。)数据类型: char; //字符数据类型,内存分配1个字节 short; //短整型,内存分配2个字节 int; ...
分类: 其他 发布时间: 09-22 11:25 阅读次数: 0