
数据结构
炽热254
慢慢
展开
-
二叉平衡树
#include <stdio.h>typedef struct tree { int val; struct tree* left, *right;}Btree,*BT_point;//int creat_tree(BT_point* L)//{// char ch;// scanf("%c", &ch);// if (ch == '#')// (*L) = NULL;// else// {// .原创 2022-03-08 15:50:44 · 449 阅读 · 0 评论 -
直接选择排序
void swap4(int arr[], int x, int y){ int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp;}void quick_order(int arr[], int x){ int i = 0; for (i; i < x; i++) { int temp = i; int j = i; for (j; j < x;...原创 2021-11-13 16:56:24 · 698 阅读 · 0 评论 -
数组的堆排序
堆排序就是将一个数组利用大根堆、小根堆(完全二叉树)的思想来对数组排序。大根堆:父节点的值大于等于子节点;小根堆:父节点的值小于或等于子结点因为完全二叉树的编号正好可以和数组的编号一一对应,这就将对数组的排序转化到了对二叉树的排序。因此我们就可以将一个任意的数组生成一个完全二叉树 利用小根堆或者大根堆的定义,可以看出他是阐述的关于父节点以及子节点之间的关系。因此在进行排序的时候,二叉树中的叶子节点就不用考虑,而是考虑内部结点以及根节点。在比较的...原创 2021-11-13 13:17:05 · 2255 阅读 · 1 评论 -
C语言快速排序
快速排序就是找随意找一个数,然后将剩余的元素按照与之的大小关系来排列在左右边。首先将找出来的那个元素放在下标为0的位置。此时我将第一个元素放在0处(将其称为核心数),之后就得先从右边开始遍历,这样便于将小于8的元素放在左边,之后右边空出位置,也就便于将左边大于8的元素放在右边。还有就是只有不涉及到元素位置交换的时候,就移动下标,来去寻找需要移动的元素。只有当L=R时候,才能够找到那个唯一合适的位置,否则都要循环之前的步骤。然后进行比较,因为11、13都大于8,就不移动,但是R--,当4&..原创 2021-11-12 16:53:40 · 1048 阅读 · 0 评论 -
直接插入 、折半查找、希尔排序
直接插入法主要就是从第一个元素开始,通过比较该元素与前面元素的大小关系来确定其合适的位置,从而实现有序排列。折半查找法的思想是从第二个元素开始,为其在前面的有序序列中寻找合适的位置...原创 2021-11-12 15:10:12 · 562 阅读 · 0 评论 -
C语言实现树的创建,递归遍历
主要是传递指针。因为传递指针的时候,相当于是在初始化的时候创建,参照链表的初始化,就是传递的二级指针,否则会提示你传入的变量没有被初始化int Create_tree(treePtr *L){ char ch; scanf("%c", &ch); if (ch == '#') { (*L)=NULL; } else { (*L) = (treePtr)malloc(sizeof(Treenode)); if (!(*L)) { return ERROR;/原创 2021-11-11 21:13:00 · 1956 阅读 · 1 评论 -
C语言实链队
源代码如下://链队(尾插法,和头弹出,头删除法;需要设立头节点——频繁的加入、退出#include <stdio.h>#include <stdlib.h>#define SIZE 10#define ERROR 0#define OK 1#define OVERFLOW 999#define ElemType inttypedef struct Node{ ElemType data; struct Node* next;}QueneNode,*Q.原创 2021-11-07 16:18:53 · 1048 阅读 · 0 评论 -
C语言实现顺序表自由插入、自由删除
今天在实现顺序表的时候,就想着实现以下自由个数的元素的插入、删除;不知道写的对不对,还请大家帮忙看看(这些就是在插入,删除中添加了循环,我只是觉得像之前那样频繁调用函数来实现元素的删除、插入很麻烦)(代码中所指插入的位置就是将这一位来存放该元素,还有就是输入的位置的数字是站在用户角度,所以会比实际存储的下标大1)//动态顺序表的实现#include <stdio.h>#include <stdlib.h>#define ElemType int#define O..原创 2021-11-05 21:14:08 · 549 阅读 · 0 评论 -
链队销毁遇见的问题
今天写到这个部分的时候,不知道为什么,一直出现错误:先把我的源代码放上来:#include<stdio.h>#include <stdlib.h>#define SIZE 10#define OK 1#define FALSE 0typedef int ElemType;typedef struct node{ ElemType data; struct node* next;}Qnode,*QnodePtr;typedef struct{...原创 2021-11-02 19:54:34 · 148 阅读 · 0 评论 -
C语言实现链栈,遇到了问题
采用了C语言来构建无头结点的链栈:#include <stdio.h>#include <stdlib.h>#define SIZE 10#define OK 1#define FALSE 0typedef int ElemType;typedef struct node{struct node* next;int data;}Snode,*SnodeL;//初始化int Snode_init(SnodeL *L)//传入相当于头指针的二级...原创 2021-11-02 14:14:19 · 444 阅读 · 0 评论