数据结构
主要介绍数据结构的相关知识
Yun_Geek
为了无法计算的价值
展开
-
二叉查找树的C++实现
1.基本概念:二叉查找树是一种有序排列的二叉树,在二叉查找树中,每个节点的左子树的所有元素的值小于该节点的元素的值,而右子树的每个节点的值都大于该节点的值,如果对二叉查找树进行中序遍历,将按照从小到大的顺序输出树里面的所有元素。2.头文件:BinatyTree.h#ifndef _TREE_H#define _TREE_H#include<iostream>using namespace std;struct TreeNode;typedef int Elemen原创 2021-03-25 16:44:21 · 494 阅读 · 0 评论 -
归并排序的C/C++实现及讲解
1.基本原理取两个输入数组A和B,一个输出数组C,以及三个计数器Aptr,Bptr,Cptr,他们初始置于对应数组的开始端。A[Aptr]和B[Bptr]中较小者被拷贝到C中的下一个位置,相关的计数器向前推进一步。当两个输入表有一个用完的时候,则将另一个表中剩余部分拷贝到C中。一个具体的合并例程如下:(摘自《数据结构与算法分析》Mark Allen Weiss 著)在归并算法中,如果只有一个元素,那么只有一个元素需要排序,直接得到结果。否则递归的将前半部分和后半部分数据各自归并排序,得到排序后的两原创 2020-06-17 17:10:42 · 547 阅读 · 0 评论 -
单链表的C语言实现
如下为单链表的实现,代码实现了单链表的创建、数据插入、数据删除、计算链表长度、修改指定数据、查找数据、打印链表等功能。运行环境为:Windows 10。集成开发工具为:visual studio 2019。1.头文件SingleList.h#pragma once#ifndef SINGLELIST_H#define SINGLELIST_Hstruct Node{ int data; struct Node* Next;};struct Node* CreatList();//原创 2020-05-27 16:41:03 · 1280 阅读 · 0 评论 -
栈的链表(C语言)实现
如下为栈的链表实现,代码实现了栈的创建、出栈、入栈、计算栈长度、返回栈顶元素、打印栈等功能。运行环境为:Windows 10。集成开发工具为:visual studio 2019。1.头文件Stack_list.h#pragma once#ifndef STACK_LIST_H#define STACK_LIST_Hstruct Node;typedef struct Node* PtrToNode;typedef PtrToNode Stack;typedef int Element原创 2020-05-28 21:20:22 · 1106 阅读 · 2 评论 -
栈的数组(C语言)实现
在上一篇博客中,笔者实现了栈的链表结构,在这一片博客中,笔者将实现栈的数组结构,功能(入栈、出栈、计算栈长度、返回栈顶元素等)与上一篇基本类似,可对比着看。1.头文件Stack_Array.h#pragma once#pragma once#ifndef STACK_ARRAY_H#define STACK_ARRAY_H#define EmptyTop -1struct Node;typedef struct Node* Stack;typedef int ElementType原创 2020-05-29 10:44:29 · 976 阅读 · 0 评论 -
队列的链表C/C++实现
本篇博客将实现队列的链表结构,具体实现的操作有入队、出队、计算队列长度、判断队列是否为空、为满等。详细工程代码如下:1.头文件Queue_list.h#pragma once#ifndef QUEUE_LIST_H#define QUEUE_LIST_Hstruct Node;typedef struct Node* PtrToNode;typedef PtrToNode Stack;typedef int Element;struct Node{ Element data;原创 2020-06-03 08:21:34 · 343 阅读 · 0 评论 -
队列的数组(C语言)实现
本篇博客将实现一般队列的数组结构,具体实现的操作有入队、出队、计算队列长度、判断队列是否为空、为满等。详细工程代码如下:1.头文件Queue_Array.h#pragma once#ifndef QUEUE_ARRAY#define QUEUE_ARRAY#define NumOfQueue 20typedef int ElementType;struct queue{ int Capacity; int size; int front; int rear; Element原创 2020-06-03 08:31:43 · 3793 阅读 · 0 评论 -
循环队列的数组(C/C++)实现及详细讲解
本篇博客将实现循环队列的数组结构,实现功能有入队、出队、计算队列长度、判断队列是否为空、为满等。队列的初始状态如下:初始状态时,front=rear=0,size=0。入队操作示意图如下:入队时,在数组的rear位置插入数据,插入数据后将rear+1向后移动一位,同时将队列长度size+1。如上图所示,当rear已经指向数组最后一个位置时,再进行入队操作,rear将重新回到起始位置0.出队操作示意图如下所示:当要将a元素出队时,原本指向a的front指针将移向下一个元素,同时将size原创 2020-06-03 14:54:47 · 1814 阅读 · 0 评论