数据结构
小鼠2021
heloo
展开
-
函数与指针的关系与应用
作为函数参数的指针void Swap(int *a , int *b){ int tmp = *a ; *a = *b; *b = temp ;}// 解引用:在使用指针时对指针对象执行操作的方法在C语言中函数只能传递参数,使用参数指针,可以大大增加我们精确控制传递参数的能力;除此之外,只传递一个指针而不是一个数据的完整副本可以大大地节省内存空间但是需要在函数中解引用按引用调用的参数作为函数参数指向指针的指针// 链表的移除函数定义int ListRemoNext(LIST *l原创 2020-12-10 11:54:32 · 152 阅读 · 0 评论 -
指针基础
存储空间的分配指针变量的大小通常与编译器的设定以及某些特定的类型界定符有关当声明一个指针时,仅仅为指针本身分配了空间,并没有为指针所引用的数据分配空间数据分配空间的两种方式:直接声明变量;动态分配存储空间(malloc,realloc)数据结构设计理念:由用户来管理存储空间以及与存储空间相关的实际的数据结构,而数据结构自身只用于维护数据内部变量的存储空间分配意义:一种数据结构的实现并不依赖于它所储存的数据的类型和大小;多个数据结构能够以单独的数据形态表现数据集合结构(结构体,联合体,原创 2020-12-10 11:12:23 · 93 阅读 · 0 评论 -
关于数据结构的总结
数据结构的存储方式数组:由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,⽽且相对节约存储空间。但正因为连续存储,内存空间必须⼀次性分配够,所以说数组如果要扩容,需要重新分配⼀块更⼤的空间,再把数据全部复制过去,时间复杂度 O(N);⽽且你如果想在数组中间进⾏插⼊和删除,每次必须搬移后⾯的所有数据以保持连续,时间复杂度 O(N)。链表:因为元素不连续,⽽是靠指针指向下⼀个元素的位置,所以不存在数组的扩容问题;如果知道某⼀元素的前驱和后驱,操作指针即可删除该元素或者插⼊新元素,时间复杂度 O(原创 2020-12-08 22:41:11 · 102 阅读 · 0 评论