数据结构
Coder_Jh
人们常说,博士与博士之间的差距比人与狗之间的差距还大。而遗憾的是,我就是混在众多优博中的那只dog。但求毕业~
展开
-
树和二叉树知识点思维导图
原创 2020-06-06 22:03:20 · 1193 阅读 · 0 评论 -
循环队列以及链队列的实现
队列是一种操作受限的线性表,因此它跟线性表一样,有顺序队列和链式队列两种存储结构。首先,对于顺序队列,用的比较多的是循环顺序队列,简称循环队列。关于循环队列,阔以参考下面这篇博客的内容,讲解的非常清晰:https://www.cnblogs.com/curo0119/p/8608606.html。在此我不再过多赘述,只贴出自己实现的循环队列的代码,如下所示://以下代码是有关循环队列的一些操作 #include <stdio.h>#include <stdlib.h>#i原创 2020-05-16 12:58:35 · 254 阅读 · 0 评论 -
链栈的基本操作实现
注:截图来自青岛大学王卓老师的《数据结构》视频教学,视频地址为: https://space.bilibili.com/40323036?spm_id_from=333.788.b_765f7570696e666f.2以下是具体代码实现://链栈相关操作 #include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;typedef int SElemTy...原创 2020-05-15 11:21:48 · 748 阅读 · 0 评论 -
利用单链表实现多项式相加
用链表实现多项式相加的优点(相比于顺序表实现):无需分配额外的空间,空间复杂度低 插入和删除操作方便用链表实现多项式相加的具体代码如下:#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;typedef int ElemType;typedef int Status;#define OK 1#define ERROR 0typedef原创 2020-05-14 13:46:58 · 2119 阅读 · 0 评论 -
关于自增自减运算符的一些问题
以下内容均以自增运算符为例,自减运算符具有相似的特性。1.自增运算符在单独使用时,前置自增运算符(++i)和后置自增运算符(i++)效果相同,都是使i的值增加1,如下例子所示:int main(){ int j=0; ++j; cout<<"j的值为:"<<j<<endl;}int main(){ int j=0; j++; cout<<"j的值为:"<<j<<endl;原创 2020-05-14 10:57:40 · 336 阅读 · 0 评论 -
单链表相关操作实现
#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;typedef int ElemType;typedef int Status;//以下内容中涉及的单链表均为带头节点的单链表 #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#defi.原创 2020-05-13 11:04:29 · 206 阅读 · 0 评论 -
顺序表相关操作实现
/*顺序表的相关定义及操作,重点掌握查找,插入以及删除操作及其时间复杂度*/ #include <stdio.h>#include <stdlib.h>#include <math.h>#include <iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define.原创 2020-05-12 19:02:07 · 390 阅读 · 0 评论 -
以尾指针表示的循环单链表相关操作代码实现
#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MaxSize 100 typedef struct Lnode{ int data.原创 2020-05-10 12:58:03 · 934 阅读 · 0 评论 -
C/C++中的3中函数参数传递方式
在C/C++中,有3种函数参数传递方式,分别是:值传递、地址传递以及引用传递。(Ps:严谨来说,引用传递是C++的语法中才有的,C中只有值传递和地址传递这两种方式)注意:形参只有在函数被调用时才会被临时分配内存空间,当调用结束时内存便会被释放 地址传递本质上也是值传递,二者传递的都是实参值的一个拷贝 在C中,实参与形参之间的参数传递是单向的,即只能由实参传递给形参,反之则不行值传递...原创 2020-05-07 13:27:24 · 206 阅读 · 0 评论 -
typedef struct和struct的区别(学习数据结构的单链表过程中遇到的问题)
最近在学数据结构时,有一些疑惑,在下图中:可以看到,在定义单链表时,对next指针的定义方式是struct Lnode *next,表示next是指向Lnode类型的一个指针。在定义指向节点p的指针的时候,用的是Lnode *p,注意此处没有struct。因此很好奇,为什么同样是指向结构体的指针,一个在定义的时候要加上struct,一个不用呢?对于定义指向节点p的指针,用的是Lnode...原创 2020-05-05 12:36:15 · 623 阅读 · 1 评论 -
C程序保存为.c文件和.cpp文件的区别
在学习数据结构时,看到老师把C语言和C++混用,并将文件保存为.cpp类型。关于.c文件和.cpp文件的区别,以下是我的一点看法:1.首先应该明白,C++是在C语言的基础上拓展而来的,因此C++的语法完全兼容C的语法。2.一般来说,如文件后缀为.cpp,则编译器默认采用C++语法标准进行编译;如文件后缀为.c,则编译器默认采用C语法标准进行编译。3.由于C++兼容C,因此C语言程序既可...原创 2020-05-03 10:56:58 · 14025 阅读 · 4 评论 -
用头指针表示的双向循环链表一些基本操作实现(带头节点)
//用头指针表示的双向循环链表的一些基本操作实现(带头节点) #include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MaxSize 100 .原创 2020-05-11 17:09:45 · 1052 阅读 · 0 评论