摘要: 一、将树转为二叉树步骤: 1、加线,将所有兄弟结点连线。 2、去线,对树中的每个结点,只保留其与左孩子的连线,删除其与右孩子之间的连线。 3、层次调整、以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。第一个孩子是二叉树的左孩子,兄弟转过来的孩子是结点的右孩子。 二、将森林转为二叉树 阅读全文
posted @ 2020-06-28 10:19 dhhu007 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 链式队列只能尾进头出,为了方便将front指针指向队列的头结点,而队尾指针指向终端结点; 链表初始化:创建一个空链表,并且空链表内包含一个头结点,头结点的后继为空,同时头指针与尾指针同时指向头结点。 链表的入队:新创建一个结点,判断队列是否为空,将队尾的后继指向新结点。同时将新结点作为尾结点。 链表 阅读全文
posted @ 2020-06-27 21:21 dhhu007 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 链式栈头文件: 1 #pragma once 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 //链式栈的结点 6 typedef struct LINKNODE 7 { 8 LINKNODE* next; 9 }LinkNode; 10 11 //链式栈 阅读全文
posted @ 2020-06-27 12:09 dhhu007 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<cstdlib> 3 #include<cstdio> 4 #define Max 50 5 #define OK 1 6 using namespace std; 7 typedef int ElemType; 8 typedef s 阅读全文
posted @ 2020-06-26 17:13 dhhu007 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1 //链式链表c语言版 2 typedef int ElemType; 3 typedef struct Node //链式链表定义 4 { 5 struct Node* next; 6 int data; 7 }ListLink; 8 9 ListLink* ListInit()//链式链表初始 阅读全文
posted @ 2020-06-26 15:28 dhhu007 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #define Max 50 3 4 #define OK 1 5 using namespace std; 6 //顺序链表c语言版(a1,a2...an) 7 typedef int ElemType; 8 typedef struct //s顺序链 阅读全文
posted @ 2020-06-25 19:29 dhhu007 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1 //冒泡排序 2 void BubbleSort(int array[], int n) 3 { 4 int i, j; 5 for (i = 0; i < n-1; ++i) 6 { 7 for (j = 0; j < n - i - 1; ++j) 8 { 9 if (array[j] > 阅读全文
posted @ 2020-06-23 18:13 dhhu007 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 1 //直接快插法,最好情况每次插入数据就在最后时间复杂度为O(n),最坏情况为每次插入数据为最小, 2 //每次移动最大次数及时间复杂度为O(n2) 3 void InsertSort(int array[], int n) 4 { 5 int i, j; 6 for (i = 1; i < n; 阅读全文
posted @ 2020-06-23 14:56 dhhu007 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 1 class Queue 2 { 3 public: 4 Queue(int len = 10); 5 Queue(const Queue& src); 6 Queue& operator=(const Queue& src); 7 ~Queue(); 8 9 void Push(int val) 阅读全文
posted @ 2020-06-22 17:31 dhhu007 阅读(166) 评论(0) 推荐(0) 编辑