如题,快速排序其实很简单,可以理解为进阶版的“数组选定界限分大小” 我把整个快排分为了两个函数,这样也更直观的了解算法流程,后期有时间再来讲解 学习快速排序可以看两个视频: 天勤 第二章:线性表划分 8分钟讲解快速排序 int partition(int a[],int left,int right ...
分类:
编程语言 时间:
2020-06-17 18:39:21
阅读次数:
76
1. 导入头文件 编写代码过程中,涉及动态内存分配等常用的函数,需要引入如下头文件 #include<stdio.h> #include<stdlib.h> 2. 结构体的定义 // 定义一个 结构体 typedef struct Node { int data; struct Node * nex ...
分类:
编程语言 时间:
2020-06-17 18:25:28
阅读次数:
53
一、概念 栈:后进先出,先进后出的数据结构。栈是一种“操作受限‘的线性表,只允许在一端插入和删除数据。 当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们就应该首选“栈”这种数据结构。 二、如何实现“栈” 既可用数组(顺序栈),也可用链表(链式栈) 数组实现: // 基 ...
分类:
编程语言 时间:
2020-06-16 23:16:52
阅读次数:
79
该篇是关于树的概述,主要介绍什么是树、树的特点、树的表示方法、树的种类、树在存储结构中的表示、树/森林/二叉树之间的转换(原理)等,关于具体树(二叉树)的实现以及查找遍历等后续总结。 树的概述及特点 树是由n个(n>=0)结点组成的一个具有层次关系的集合。 如图,是一个普通的树的图像表示: 从这个图 ...
分类:
其他好文 时间:
2020-06-16 21:55:55
阅读次数:
57
1.求单链表中有效节点个数 public static int GetLength(HeroNode headNode) { int length = 0; var cur = headNode.Next; while (true) { if (cur == null) break; length+ ...
分类:
编程语言 时间:
2020-06-16 00:43:04
阅读次数:
54
实现单链表基础操作 package linkedlist; import java.util.NoSuchElementException; import java.util.Stack; /** * 单链表 */ @SuppressWarnings("all") public class Sing ...
分类:
编程语言 时间:
2020-06-15 23:15:23
阅读次数:
97
1.单链表操作 class ListNode: def __init__(self,data): #data为数据项,next指向下一节点 self.data = data self.next = None class LinkList: def __init__(self): #初始化head指针 ...
分类:
其他好文 时间:
2020-06-15 20:57:48
阅读次数:
51
1.介绍: 链表是有序的列表,但是它在内存的存储如下: 链表是以节点的方式来存储,链式存储 每一个节点包含data域,next域:指向下一个节点 链表的各个节点不一定是连续存储 链表分带头节点的链表和不带头节点的链表,根据实际的需求来确定 单链表(带头节点) 2.应用实例 使用带head头的单向链表 ...
分类:
编程语言 时间:
2020-06-15 16:03:17
阅读次数:
66
不带头结点: typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; //初始化一个空的单链表 bool InitList(LinkList &L) { L = NULL; return true; } void ...
分类:
其他好文 时间:
2020-06-14 20:54:33
阅读次数:
71
#线性表的顺序存储结构 ####一、线性表有两种物理结构:顺序存储结构与链式存储结构 ####二、线性表的顺序存储结构,指的是用一段地址连续的存储单元一次存储线性表的数据元素。 说白了,线性表的顺序存储结构,就是线性表的数据元素的内存地址是连续的。可以用占座来比喻一下,就是占了一块地方的几个位置。多 ...
分类:
其他好文 时间:
2020-06-14 18:41:11
阅读次数:
66