数据结构
今日青年
追求,是用青春换富有
展开
-
单向链表无头链表
程序检测插入 ,头插,头删,尾删,寻找,检测链表,尾插,删除,移除相同头文件#pragma once#define OK 1#define FALSE 0//带有头结点的单方向链表typedef int SlDataType;//定义了节点typedef struct SlistNode { SlDataType data; struct SlistNode...原创 2019-04-25 23:52:35 · 191 阅读 · 0 评论 -
Git hub 代码库
平时的代码练习,有前端,也有Linux,也有数据结构等等原创 2019-06-04 23:47:18 · 891 阅读 · 0 评论 -
二叉树的顺序结构存储(堆的实现)
先附上之前写的关于树的知识点的回顾树的概念二叉树有两种常见的结构方式,一种是顺序存储(就是用数组来存储),一种是链表结构来存储但是普通的二叉树是不适合用数组来存储,因为可能会存在大量的空间浪费,而完全二叉树是可以用顺序结构来存储的,现实中我们通常把堆(一种二叉树)使用顺序结构数组来存储,需要注意的是这里的堆和我们操作系统虚拟进程地址空间的堆是两回事,一个是数据结构,一个是操作系统中管理内存的...原创 2019-05-30 15:40:26 · 10492 阅读 · 0 评论 -
树的概念
1.树的基本概念树形结构是一类重要的非线性数据结构,是n个(n>=0)个节点的有限集合在任意一个非空树中:(1)有且仅有一个特定的称为根的(Root)的节点(2)n>1时,其余节点可分为m个互不相交的有限集T1,T2,Tm,其中每一个集合本身又是一棵树,并且称为根的子树2. 树中名词的相关概念节点的度:一个节点含有的子树的个数称为该节点的度,如上图A为3树的度:一棵树中...原创 2019-05-27 13:42:12 · 316 阅读 · 0 评论 -
链表面试题(一)
1.删除链表中等于给定值 val 的所有节点。示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5/** * Definition for singly-linked list. * struct ListNode { * int val; * struc...原创 2019-05-15 13:29:55 · 163 阅读 · 0 评论 -
栈和队列的相关问题
1. 什么是栈,栈有什么特性?抽象的数据类型栈的定义栈是一种线性表,是一种有约束的线性结构 ,(限定仅在表位进行插入或者删除的线性表),因此对栈来说,表尾端称为栈顶(top),表头称为栈尾(bottom),不含元素的称为空栈先进后出(FILO),或者后进先出(LIFO)的线性表2. 栈和程序运行时的栈区有什么区别?我们这里说的栈是一种抽象的数据结构,是我们在描述数据时候抽象的一种方法,...原创 2019-05-18 23:13:13 · 1253 阅读 · 0 评论 -
双向带头链表的实现
头文件#pragma once typedef int DlDataType;typedef struct DlistNode { struct DlistNode* P_Next; struct DlistNode* P_Pre; DlDataType data;}DlistNode,*DNode;void Dlistinit(DNode* Head);//尾插...原创 2019-04-30 23:18:46 · 141 阅读 · 0 评论 -
如何求解:二分查找、递归求阶乘、递归斐波那契的时间复杂度?斐波那锲的优化问题
二分查找int SeqListBinary_Search(int* arr,size_t search_data,size_t size){ int left = 0; int right =size-1; int mid; while(left<=right) { mid = left+((right-left)>>2); if(arr[mid]<se...原创 2019-04-24 11:06:57 · 2478 阅读 · 0 评论 -
关于时间复杂度和空间复杂度的问题,常见时间复杂度
一. 如何衡量一个算法的好坏?1.这个算法必须是可以实现的并执行无误的2.这个算法是友好的,不装逼的,是让人能看懂的3.这个算法时间复杂度和空间复杂度是可观的.(越小越好)二. 什么是时间复杂度?在计算机科学中,算法的时间复杂度是一个函数,它定量的描述了该算法的运行时间.通俗的讲,一个算法所花费的时间与其中语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度三. 时间...原创 2019-04-24 10:57:22 · 792 阅读 · 0 评论 -
顺序表和链表的区别
顺序表 链表 尾插尾删 尾插/尾删:O(1) 不带头结点的单链表--尾插,删除节点方式遍历链表O(N) 插入删除 任意位置的插入和删除O(n) 单链表只能插入节点之后,在给节点位置之后O(1) 访问元素 支持随机访问 不支持随机访问 底层空间 连续空间 空间不连续 扩容问题...原创 2019-08-18 23:35:34 · 216 阅读 · 0 评论