- 博客(9)
- 收藏
- 关注
原创 企业链表原理C语言实现
这两个结构体均不包含具体的用户数据层面的操作,用户的数据类型需要单独定义,在链表的函数里面是没办法直接访问用户的数据的,需要借助预留的函数指针接口,定义用户自己的打印函数和比较函数(关于数据值操作的函数)。该结构数据将数据层面和数据链层面完全分开,数据层面进入数据链层需要进行强制类型转换,借助指针指向结构体的首地址这一原理。定义两个数据结构:链表结构和节点结构。企业链表是内核链表和传统链表的改进版本。要对指针的原理了解比较清楚,理解稍微复杂。空间开销更小,和用户数据剥离更加彻底。
2024-01-18 16:13:06 346
原创 单向链表原理与C语言实现
链表是由一系列的节点组成的每个节点包含两个域:指针域、数据域。找到删除的上一个节点,让其指针指向删除元素的下一个节点。数据定义在node里面,初始化释放均比较需要进行两次内存操作。节点的next指针指向空NULL则为最后一个节点。只能单向迭代遍历,不能快捷访问,插入等操作仍然不够简洁。找到插入的上一个节点,让其指针指向插入节点。节点之间只有单向连接关系,可以递归查找下一个节点。没有大量的数据操作,均是指针操作,可以无限扩容。再让插入节点指针指向下一个节点。回收删除元素的内存。不连续的存储空间(链表)
2024-01-18 14:32:00 499 1
原创 动态数组原理C语言实现
内存大小固定,内存不够,需要扩容,复制,内存操作频繁,复制操作频繁,效率低下。// 当有新元素的插入时,需要申请内存 拷贝数据 释放内存。// 因此为了避免频繁的内存操作,先预先申请一块较大的内存空间。// 容量:capacity,表示目前一共可以存放多少元素。用一段地址连续的存储单元依次存储线性表的数据元素。// size:记录当前数组中具体的元素个数。5.如果空间不够,申请一块更大的空间。//动态增加内存,将存放数据放在堆上。6.将原空间的数据拷贝到新的空间。//int 类型的动态数组。
2024-01-18 14:15:11 371 1
原创 B样条曲线
是控制多边形的顶点差别:1)伯恩斯坦基函数的阶数与顶点数n无关2)参数u的取值范围不同称为k阶(k-1次)B样条基函数,k是刻画次数的。对于Bezier曲线,阶数和次数是一样的,但是B样条,阶数是次数加1B样条基函数是一个称为节点矢量的非递减的参数u的序列所决定的k阶分段多项式,这个序列称为节点向量。
2023-03-24 10:42:42 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人