![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 86
且听风吟0618
起风了,唯有努力生存。
展开
-
静态链表解析
对于需要实现链表结构,但又不支持指针的语言(如:Basic、Fortran),则可以通过采用数组结构模拟出链表来,相比采用动态内存分配的链表结构,该结构称为静态链表(也称为 “游标实现法” )。1 结构首先,涉及到链表结构,则节点中必定需要包含一个指向其他节点的数据。对于静态链表,在不使用指针的情况下,此处采用储存节点下标的方式来实现。对于每个节点,定义其数据元素data的数据类型为ElemType(此处为char,可根据实际情况修改),而next则称为游标(虚拟指针),保存下一个节点的下标。由原创 2021-04-24 22:03:47 · 403 阅读 · 2 评论 -
指针浅析
对于最普通的指针,如下图所示举例char v = 'a';char *p = &v;char *p = “a01”;1 多级指针(1) char **pchar v = 'a';char *p1 = &v;char **p = &p1;(2) char ***p同理2 指针数组包含指针的数组p 本身是数组,而数组内部的元素是指针(1) char *p[]char *p[] = {"a01", "原创 2020-11-01 22:56:32 · 322 阅读 · 0 评论 -
实现链表与哈希表相结合的快速表
设计可以变更的缓存结构:该结构在构造时确定大小,假设长度 len,且有两个功能:int set(string key,int value):将记录(key,value)插入该结构int get(string key):返回key对应的value要求:set和get时间复杂度为O(1) 某个key的set/get操作一旦发生,认为这个key成为最常使用的(默认这一步也是O(1) ) 当缓存大小超过k时,移除最不常用的记录。思路:第1点,set 和 get 的时间复杂度要为O(1),数组虽然原创 2020-09-09 13:20:11 · 1330 阅读 · 0 评论 -
数据结构 - 二叉树的遍历
树的结构定义二叉树的数据结构如下:typedef struct BiTNode // 节点结构{ TElemType data; // 节点数据 struct BiTNode *lchild,*rchild; // 左右孩子指针}BiTNode,*BiTree;构成下图所示的二叉树为例:包含 A ~ I 共9个节点遍历方式目前基本是采用递归的方式来对树进行遍历,核心就是先递归遍历左子树,再递归遍历右子树void Traverse(BiTree T){原创 2020-08-23 20:59:56 · 396 阅读 · 3 评论 -
实现自定义的数据结构 —— 树
最近看了一些公司的面试题,发现涉及 IT技术,包括 AI 行业的题目都会涉及到最基本的 C/C++、数据结构和算法之类的,突发奇想写了一个没什么卵用的数据结构,就当是复习了[手工微信哭笑表情]1 结构图1.1 自定义树的整体结构 该自定义结构不同于二叉树及其他数据结构,每个节点的子节点个数不受限制,最大限度保留了数据的原始结构,并实现了其前序和后序遍历的方法。优点是节省了内存,但缺点则是基于链表结构查询的时间开销会相对较大。当然二者不可兼得举个例子,图1.1...原创 2020-06-04 10:15:27 · 793 阅读 · 0 评论 -
C语言指针实例
记录一些平常可能用到的指针例子#include<stdio.h>int main(){//------------------------------------- No.1 char array[4] = "a01"; //------------------------------------- No.2 char array1[3][4] = {"a01","a0...原创 2018-03-31 22:01:13 · 4514 阅读 · 0 评论 -
C/C++语言笔记
循环嵌套在多层循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。如果循环体内存在逻辑判断,并且循环次数很大,应将逻辑判断移到循环体外。引用不能有 NULL 引用,引用必须与合法的存储单元关联(指针则可以是 NULL)int &m=NULL; //error不能建立指针的引用 int * &n = &...原创 2019-09-14 23:06:52 · 226 阅读 · 0 评论