
c数据结构
文章平均质量分 52
songyitian4
这个作者很懒,什么都没留下…
展开
-
单链表删除节点时间复杂度O(1):算法实现
王道书上的代码:q=p->next;p->data=p->next->data;p->next=q->next;free(q);如果删除的元素没有后继元素,那么代码会出现问题,即没有办法真正的删除这个元素。我的理解是这样的,上个元素指向的地址是不变的永远都指向这一块,所以当前元素你不论是设为NULL还是free掉,都没有用所以我引入了一个新的参数将链表传过去,找到该元素的前驱元素,从而通过修改前驱元素的指针来达到删除的目的;修正后的代码int De原创 2022-05-18 17:56:18 · 1751 阅读 · 0 评论 -
线性表之单链表存储结构:头插法和尾插法(C语言可运行)
压楼运行截图一些话链表在初学c语言时是十分困难的对我来说,但是随着再次啃起数据结构,一切都似乎简单了一些。在敲代码的过程中,深刻的理解了一句话:指针就是地址,地址就是指针这句话老师在讲c语言那会经常说,当时半懂半不懂,现在似乎突然就懂了可能我太聪明了吧!!!哈哈 ^ __ ^链表和顺序表(动态建立)的区别1.懒汉。我觉得链表和线性表最大的区别就是存储结构的不同!(这不废话吗!) 。然而我想说的:链表是需要新的节点才创建,有一点点懒汉式的味道。而顺序表不管是静态创立还是动态创立,都原创 2022-05-16 21:30:05 · 339 阅读 · 0 评论 -
线性表的顺序存储结构(动态分配)实现C语言
QuestionsQ1动态分配和静态分配的区别动态分配和静态分配顾名思义:他们是分配方式的不同。--------静态分配是一经定义,它的大小就无法更改,要想获得更多的存储空间就只能重新定义一个更大的数组。--------动态分配他的存储空间可以进行变化,如果不够,则可以向内存申请空间,他的存储空间是可变的。Q2动态分配的特点特点突出一个“动”字:不够就再申请。实现方式的区别动态分配的实现方式大体上和静态的分配方式一致,只是初始化会不一样并且新加了一个方法增加存储空间。结果截图原创 2022-05-08 16:40:40 · 1222 阅读 · 1 评论 -
线性表的顺序存储实现(静态分配方式):顺序表的插入和删除
Q(源码在后面,可以直接运行,有少量的注释帮助理解)Q1为什么有些了一遍?我感觉这次是真真正正地步入了数据结构学习的大门了,从标题可见一二。数据结构的三要素:逻辑结构,存储结构和数据的运算。Q2线性表的逻辑结构每个线性表都有唯一一个表头元素以及表位元素。除了表头元素外,每个元素都有且只有一个前驱元素除了表尾元素外,每个元素都有且只有一个后继元素线性表是元素有限的线性表的元素是有次序的Q3线性表的顺序存储结构存储结构在我看来是它的实现方式,只有逻辑结构的数据结构是一个抽象的原创 2022-05-08 10:09:03 · 1142 阅读 · 0 评论 -
数据结构:利用栈实现算式运算。Top1:中缀表达式转后缀表达式
真真真的觉得数据结构好难,但是秉着“为之则易,不为则难”的校训,我终于迈出了这一步,我要解决掉这个问题!- start问题描述实现一个简单的计算器,输入一个包含圆括号、加、减、乘、除、求余等符号组成的算术表达式字符串,输出该算术表达式的值。待解决问题中缀表达式转化为后缀表达式步骤对象区分:对于一个字符串形式的数学算式,如何区分数字(1位数字、多位数字)栈的创建…堆栈的特点Last in first out两种实现方式(顺序存储):数组实现链表实现原创 2021-05-01 22:11:33 · 755 阅读 · 2 评论 -
数据结构c创建链表之困扰我两星期的segmentation fault
很奇怪的一个问题,太奇怪了!我记得指针作为函数参数传递的是地址,能够修改那个地址存放的变量。现在让我来还原这两星期的坎坷。创建链表的方法:typedef struct teacher* tList;int InitList(tList L){ //malloc 函数返回的是一个地址 L=(tNode*)malloc(sizeof(tNode));//创建头节点并设置头结点 L->next=NULL;//首元结点设为空 return 1;}添加信息方法:原创 2021-04-10 10:38:43 · 1664 阅读 · 0 评论 -
动态数组C语言
题外话:寒假1月12号就开始了,在这之前学校组织了两周的实训,做了一个实验室设备管理系统,并且还用到了通讯功能。一直想把实验成果发到csdn,但是最近沉迷在游戏中(原神),所以一直没有来得及,只是隔几天学一会数据结构,抽空把实训成果上传一下,记录一下自己的轨迹。接下来是正题动态数组动态数组与c语言自带的数组有什么区别动态数组的设计思路动态数组的设计动态数组与c语言自带的数组有什么区别数组它涉及到一种存取结构:顺序存储。它是有序的,索引值从0开始的,元素的实际位置和索引相差一位。下面我将从两.原创 2021-02-06 17:49:58 · 954 阅读 · 0 评论