随笔分类 -  c/c++数据结构

1
摘要:先说一说双向循环链表的逆置,网上搜了一箩筐,用VS2017,基本上不成功,尽管明白道理是怎么回事,但是总感觉,不像c++的类,感觉用起来还得传指针啊,传链表啊等参数,不太像双向循环链表类的专属函数。虽然c语言写出来双向循环链表最好,但是既然学了c++,就尽量用一下c++的特点,能用多少是多少,也有利 阅读全文
posted @ 2020-04-17 17:47 yg_staring 阅读(347) 评论(0) 推荐(0)
摘要:循环链表,顺便也附上链表的迭代器 1 #include <iostream> 2 3 using namespace std; 4 5 template<class T> class List; 6 template<class T> class ListIterator; 7 8 template 阅读全文
posted @ 2020-03-14 19:50 yg_staring 阅读(425) 评论(0) 推荐(0)
摘要:通过数组建立队列 1 #include <iostream> 2 3 using namespace std; 4 5 template<class T> 6 class MyQueue 7 { 8 public: 9 MyQueue(int queuecapacity=10); 10 ~MyQue 阅读全文
posted @ 2020-03-14 19:46 yg_staring 阅读(257) 评论(0) 推荐(0)
摘要:通过数组建立栈 1 #include <iostream> 2 3 using namespace std; 4 5 template<class T> 6 int ChangeSize1D(T *a, const int oldSize, const int newSize ) 7 { 8 if( 阅读全文
posted @ 2020-03-14 19:44 yg_staring 阅读(147) 评论(0) 推荐(0)
摘要:不使用循环,采用头尾指针,不带有头结点,我这里只是简易的输出,并没有写专用的迭代器。 1 #include <iostream> 2 3 using namespace std; 4 5 template<class T> class MyList; 6 7 template<class T> 8 阅读全文
posted @ 2020-03-14 19:39 yg_staring 阅读(230) 评论(0) 推荐(0)
摘要:使用邻接表建立图,直接使用了c++已经写好的list 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 class Vertex 7 { 8 public: 9 char Label; 10 Vertex(cha 阅读全文
posted @ 2020-03-14 19:36 yg_staring 阅读(197) 评论(0) 推荐(0)
摘要:DFS使用c++中的stack,BFS使用c++中的queue 1 #include <iostream> 2 #define MAX_VERTS 20 3 #include <stack> 4 #include <queue> 5 6 using namespace std; 7 8 class 阅读全文
posted @ 2020-03-14 19:33 yg_staring 阅读(592) 评论(0) 推荐(0)
摘要:二叉树的遍历实现,可以用递归的方法也可以用非递归的方法。非递归的方法可以借助栈(前序遍历,中序遍历,后序遍历),也可以借助队列(层次遍历)。本次笔记只使用了递归的方法来进行前序遍历,中序遍历,后序遍历,借助队列进行层次遍历。想要更细致的看一下二叉树的遍历推荐http://c.biancheng.ne 阅读全文
posted @ 2019-11-22 20:13 yg_staring 阅读(329) 评论(0) 推荐(0)
摘要:用链表搭建的栈与队列相对简单,队列的特点是先进先出,不啰嗦了,由于代码比较简单,相信光顾的人不会太多,下面直接贴代码。 头文件 1 #ifndef QUEUELI_H 2 #define QUEUELI_H 3 4 template<class T> 5 class Queue 6 { 7 publ 阅读全文
posted @ 2019-11-09 21:40 yg_staring 阅读(323) 评论(0) 推荐(0)
摘要:栈的最基本特点先进后出,本文简单介绍一下用c++写的链式栈 头文件 1 #ifndef LINKEDSTACK_H 2 #define LINKEDSTACK_H 3 4 template<class T> class LinkedStack; 5 6 template<class T> 7 cla 阅读全文
posted @ 2019-11-07 19:42 yg_staring 阅读(234) 评论(0) 推荐(0)
摘要:上一次的C++链表实现两个单链表的连接不太理想,此次听了一些视频课,自己补了个尾插法,很好的实现了两个链表的连接,当然了,我也是刚接触,可能是C++的一些语法还不太清楚,不过硬是花了一些时间尽量在数据结构中将c++的语言特点表现出来。一开始也是不愿意读c++的数据结构,只是一种挑战心里,不想读着读着 阅读全文
posted @ 2019-11-02 10:37 yg_staring 阅读(508) 评论(0) 推荐(0)
摘要:原理可访问https://www.cnblogs.com/yang901112/p/11674333.html 头文件 源文件 阅读全文
posted @ 2019-11-01 22:14 yg_staring 阅读(826) 评论(0) 推荐(0)
摘要:单链表,用于存储逻辑关系为 "一对一" 的数据,与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻。 例如{1,2,3}: 线性表的链式表示又称为非顺序映像或链式映像。 各结点 阅读全文
posted @ 2019-10-27 23:21 yg_staring 阅读(6983) 评论(0) 推荐(1)
摘要:线性表,即线性存储结构,将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构,简称线性表。 注意:使用线性表存储的数据,要求数据类型必须一致,线性表存储的数据,要么全不都是整形,要么全部都是字符串。一半是整形,另一半是字符串的一组数据无法使用线性表存储。 线性表存储数 阅读全文
posted @ 2019-09-07 20:51 yg_staring 阅读(2403) 评论(0) 推荐(1)
摘要:数据结构的起源 计算机从解决数值计算问题到解决生活中的问题 现实生活中的问题涉及不同个体间的复杂关系 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系 不是研究复杂的算法 数据结构中的基本概念 数据—程序的操作对象,用于描述客观事物 数据的特 阅读全文
posted @ 2019-09-05 17:49 yg_staring 阅读(301) 评论(0) 推荐(0)
摘要:快速排序:在一组数据中,可以将左边的数字当作枢轴(右边也可以),接下来要做的就是,先从右边找到比枢轴小的数, 再从左边找到比枢轴大的数,接着将这两个数进行交换,重复上述步骤找出所有符合条件的数进行交换, 最后将枢轴放到比枢轴大的数与比枢轴小的数之间。之所以要从右边开始找,并且找到比枢轴小的数是因为交 阅读全文
posted @ 2019-08-10 19:55 yg_staring 阅读(334) 评论(0) 推荐(0)
摘要:简单的理解,插入排序,就是原队列中不断的出列一个值,与已经出列的所有值进行一一比较,找到自己的位置进行插队。 下面是学习的来的插入排序以及自己对一些代码的注释;另外,在此基础上将其中的插队代码,单独做成了一个函数。 下面是插入排序的c++代码: 改动的c++代码 阅读全文
posted @ 2019-08-10 11:14 yg_staring 阅读(251) 评论(0) 推荐(0)
摘要:代码在最后,c++语言,在codeblocks17.12下运行顺利 4 8 1 7 5 0 2 9 6 3 每一次都在剩下的数字中找到最小值 0 8 1 7 5 4 2 9 6 3 0的位置与4的位置交换 0 1 8 7 5 4 2 9 6 3 1的位置与8的位置交换 0 1 2 7 5 4 8 9 阅读全文
posted @ 2019-08-09 08:19 yg_staring 阅读(230) 评论(0) 推荐(0)
摘要:直接上代码,解释在代码中 阅读全文
posted @ 2019-08-08 22:51 yg_staring 阅读(245) 评论(0) 推荐(0)
摘要:这里用了float类型 公鸡x、母鸡y、小鸡z共100只 钱:5x + 3y + 1/3z = 100 求x,y,z 代码在codeblocks17.12运行的结果为 0 25 754 18 788 11 8112 4 84 阅读全文
posted @ 2019-08-03 21:24 yg_staring 阅读(273) 评论(0) 推荐(0)

1