数据结构
炸毛疯兔
这个作者很懒,什么都没留下…
展开
-
数据结构-C++实现的简单List
本文用C++语言实现了一个简单的List,其中包括List的基本功能接口函数的实现和对于List排序的插入排序和选择排序...希望能够帮助到大家原创 2022-01-26 23:43:38 · 3599 阅读 · 0 评论 -
数据结构-BitMap
本文介绍了BitMap这一数据结构的思想,附带部分应用解释原创 2022-01-21 11:32:56 · 934 阅读 · 0 评论 -
数据结构实验-哈夫曼编码
#include<iostream>#include<queue>#include<map>#include<string>using namespace std;class Node //创建Node结点 {public: //构造函数: Node(char c,int count,Node *l=NULL,Node *r=NULL) //默认子树为空 //当我们构建哈夫曼编码才进行设置子节点 :m_c(.原创 2021-12-12 22:42:10 · 736 阅读 · 0 评论 -
哈希表(几种建表和解决冲突的方法)
什么是哈希表哈希表用的是 数组支持按照下标随机访问数据的特性 ,所以哈希表其实就是数组的一种扩展,由数组演化而来。 可以说,如果没有数组,就没有散列表。 哈希表存储的是由键(key)和值(value)组成的数据。 —-知乎根据设定的哈希函数H(key)和处理冲突的方法将一组关键字影像到一个有限的连续的地址集(区间)上,并以关键字在地址集中的‘像’作为记录在表中的存储位置,这种表就是哈希表。这一个映像的过程就是哈希造表或散列,所得到的存储位置就是哈希地址或散列地址哈希冲突:所谓哈希冲突,简单来说,原创 2021-12-11 23:04:08 · 1596 阅读 · 0 评论 -
图解冒泡、插入、希尔排序(其他待更新...)
小白版本的冒泡、插入、希尔排序 (其他排序算法待更新)原创 2021-11-30 18:15:13 · 152 阅读 · 0 评论 -
是否同一棵二叉搜索树 (建立二叉搜索树,判断是否同构)
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。随后L行,每行给出N个插入的元素,属于L个需要.原创 2021-08-12 10:43:09 · 438 阅读 · 0 评论 -
6-12 二叉搜索树的操作集 (30 分)
本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST );Position FindMax( BinTree BST );其中BinTree结构定义如下:原创 2021-08-11 21:52:04 · 58 阅读 · 0 评论 -
6-5 链式表操作集 (20 分)
函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef P原创 2021-08-11 09:49:43 · 115 阅读 · 0 评论 -
二叉树的基本操作(4种遍历以及求树的深度)
#include<iostream>#include<stdlib.h>#include<queue>using namespace std;typedef char elemtype;typedef struct BiTnode //结点结构 { char data; struct BiTnode *l,*r;}BiTnode,*BiTree; //指针变量 void CreateBiTree(BiTree *T){ char ch; .原创 2021-08-06 14:18:11 · 289 阅读 · 0 评论 -
链队列(入队、出队、展示队列)
#include<iostream>#include<stdlib.h>#include<stdio.h>#include<time.h>using namespace std;typedef struct QNode //结点结构 { int data; struct QNode *next;}QNode,*QueuePtr;typedef struct { QueuePtr front,rear; //头尾指针 }LinkQu.原创 2021-08-01 14:49:32 · 1475 阅读 · 0 评论 -
队列的顺式存储(循环队列)
front 和rear分别代表头尾指针队列的长度是(rear-front+QueueSize)%QueueSize队列Q满的判断:(Q->rear+1)%MAXSIZE==Q->front 两者位置相差为1队列Q为空的判断:Q->front==Q->rear#include<iostream>using namespace std;const int MAXSIZE=50;typedef struct { int d...原创 2021-08-01 12:19:24 · 339 阅读 · 0 评论 -
中缀表达式转后缀表达式(栈)
#include<iostream>#include<stack>#include<cstring>using namespace std;int priority(char c){ if(c=='(') return 0; else if(c=='+'||c=='-') return 1; else return 2;}bool cmp(char a,char b){ return priority(a)>priority(b);}.原创 2021-07-31 11:42:54 · 58 阅读 · 0 评论 -
线性表链式存储
#include<iostream>#include<stdlib.h>#include<time.h>using namespace std;typedef struct _Node{ int data; struct _Node *next;}Node;typedef struct _Node *linklist;//返回第i个元素的值int getelem(linklist L,int i){ int j=1; linklist p=L.原创 2021-07-31 09:30:57 · 36 阅读 · 0 评论