
数据结构
Pwnpanda
这个作者很懒,什么都没留下…
展开
-
线性表顺序存储
参考书籍:《大话数据结构》#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20typedef int Status;typedef int ElemType;Status visit...原创 2018-10-26 20:01:54 · 194 阅读 · 0 评论 -
C语言顺序表
VSCode#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;#define maxSize 100typedef struct SqList{ /* data */ int data[maxSize]; int length...原创 2019-09-26 20:38:13 · 321 阅读 · 1 评论 -
顺序表的简单实现
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct List{ int data[MAXSIZE]; int length;} List;//初始化void InitList(List *L){ L->length = 0; ret...原创 2019-07-16 00:04:08 · 464 阅读 · 0 评论 -
C语言邻接表表示图
图论虐我千百遍,我待图论如初恋邻接表法的难点就在于这一大堆的结构体,让人乍一看头大,仔细一看就不想看了,推荐大家拿个小本本,手动写一下各个结构体,然后写下面的代码时候就可以随时对着本子瞅一眼,以免乱套图说要有边,好,那就得定义一个边的结构体//边结构typedef struct ENode{ Vertex V1,V2; WeightType Weight;} ENode...原创 2019-03-03 16:28:23 · 1311 阅读 · 2 评论 -
AVL树C语言代码
普通的二叉查找树很容易导致某一侧的子树高度远远超过另一侧,这就导致了搜索效率的降低。AVL树(自平衡二叉查找树的诞生就是为了解决此类问题),和之前的BST树很类似,但是要添加上平衡因子,并在插入或删除某结点后进行平衡#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;typedef int ElemType;typedef struct Avl...原创 2019-02-26 16:56:28 · 1401 阅读 · 3 评论 -
二叉查找树
二叉查找树的平均深度是O(㏒ N),所以不用担心栈空间被用尽。注意事项:如果插入重复的元素,可以不做处理或者根据自身需求对某些数据进行更新,这里采用前者;诸多操作中,最难操作的是删除操作,因为要分三种情况①需要删除的结点是树叶,那么可以立即删除;②如果删除的结点具有一个孩子,那么可以对该节点的父节点进行操作,改变其父节点的指针;③如果需要删除的结点有两个孩子,则默认将其右子树的最小值替...原创 2019-02-25 11:21:31 · 158 阅读 · 0 评论 -
C语言实现顺序队列
练习数据结构顺便提升一波C语言水平主要区别在于初始化的时候,测试数据和测试结果一致,C语言指针真的是博大精深(照这样下去我可能要疯了)第一种#include<stdio.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20typedef int Status;t...原创 2019-02-06 20:01:34 · 1372 阅读 · 2 评论 -
C语言-位向量排序
原题是《编程珠玑》第一章课后题,这里主要贴一下代码相关链接:https://blog.youkuaiyun.com/zeb_perfect/article/details/41312397#include<stdio.h>#define BITSPERWORD 32 //使用的基本数据类型为32位,int型#define SHIFT 5 //与确定位处于哪个#define MASK 0...原创 2019-01-28 21:32:12 · 658 阅读 · 0 评论 -
链栈
链栈,两种写法对比两种写法的本质一样,但是写法上略有不同,个人认为两者之间的外部操作有着很大的区别(C语言初学者,如有描述错误,还请大佬指出)第一种(参考–>数据结构-浙江大学 陈姥姥)只声明一个结构体,该结构体是结点的结构体,相当于,我们每次进行push和pop的时候都是直接对结点进行操作,并不是直接操作这个链栈#include<stdio.h>#include&l...原创 2019-02-02 17:54:12 · 426 阅读 · 0 评论 -
快速排序
顺便安利一波学习数据结构&&算法的好地方:VisuAlgo#include<iostream>using namespace std;int partition(int a[], int i, int j){ int p = a[i]; int m = i; for (int k = i + 1; k <= j; k++) { if (a[k...原创 2018-12-17 23:34:35 · 210 阅读 · 0 评论 -
邻接矩阵
环境:VS2017#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXVEX 100 //最大顶点数,用户自定义#define INFINITY 65535typedef int Status;typ...原创 2018-11-20 16:13:03 · 2359 阅读 · 2 评论 -
C++实现链表
Dev C++实现了创建、增、删、改、查、找最大、找最小、置空、数组转链表、链表合并#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;typedef struct LNode{ int data; LNode *next;} LNode;void...原创 2019-09-28 19:55:31 · 330 阅读 · 0 评论