数据结构
我不是斗哥
这个作者很懒,什么都没留下…
展开
-
单向链表的实现
总结在学习单向链表的过程中,最费心的就是在初始化链表和销毁链表因为其中涉及到了调用一个函数对在主函数中定义的指针变量进行内存的分配(malloc)和内存的销毁(free)在C/C++的学习过程中,总结起来,遇到过二级指针的情况大概两种:一种是对链表的操作,另一种是对一个数组进行动态内存分配关于链表反转这个程序比较难理解并且抽象,因此用特殊法来走一遍程序#include <stdio.h> #incl原创 2016-09-30 10:22:25 · 273 阅读 · 0 评论 -
线性顺序表的实现
#include <iostream> using namespace std;#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INIT_SIZE 10 #define INCREMENT_SIZE 5typedef int Status; typedef int Elemtype;//存储结构 typed原创 2016-09-28 21:35:15 · 370 阅读 · 0 评论 -
队列(链式结构)的实现
#include<iostream>using namespace std;#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0typedef int Elemtype; typedef int Status;/*队列结点的结构体*/ typedef struct _QNode { Elemtype data; str原创 2016-10-02 00:39:22 · 371 阅读 · 0 评论 -
二叉树的实现
#include<stdio.h> #include<stdlib.h>#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0typedef int Elemtype; typedef int Status;typedef struct _Tree { Elemtype data; struct _Tree* Lchil原创 2016-10-04 10:54:32 · 192 阅读 · 0 评论 -
栈的实现(顺序结构&&链式结构)
#include<iostream> #include<stdio.h> #include<stdlib.h>using namespace std;#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define INIT_SIZE 10 #define SIZE_INCREASEMENT 10typedef int Elemt原创 2016-10-01 13:03:30 · 403 阅读 · 0 评论 -
如何检测到链表中存在循环?
如何检测到链表中存在循环?摘自《C专家编程》:1.首先要注意排除特殊情况,即链表只有三个元素,第二个元素的后面是第一个元素。2.设置两个指针p1与p2。p1指向第一个元素,p2指向第三个元素。如果两个指针指向的内容相等,则属于特殊情况,链表存在循环。3.相反,如果两个指针指向的内容不相等,p1向后移动一个元素,p2后移两个元素。4.如果出现两个指针都为NULL的情况,则此链表不存在循环。相反地,如果原创 2017-01-13 21:55:21 · 890 阅读 · 0 评论 -
数据结构学习笔记
前序、中序、后序遍历 前序遍历:根-左-右,ABDECF 中序遍历:左-根-右,DBEAFC 后序遍历:左-右-根,DEBFCA原创 2019-09-16 13:59:35 · 119 阅读 · 0 评论