当前位置: 首页 > news >正文

域名 空间 网站筑龙网登录

域名 空间 网站,筑龙网登录,做网站可以赚钱吗?,别墅室内设计网站顺序表的优缺点 缺点: 中间/头部的插入删除,时间复杂度效率较低,为O(N) 空间不够的时候需要扩容。 如果是异地扩容,增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗。 扩容可能会存在…

顺序表的优缺点

缺点:

  • 中间/头部的插入删除,时间复杂度效率较低,为O(N)

  • 空间不够的时候需要扩容。

    • 如果是异地扩容,增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗。
  • 扩容可能会存在空间浪费。

    • 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。

优点:

  • 尾差尾删足够快。
  • 下标的随机访问和修改足够快。

链表的初步认知

针对顺序表的缺点,链表就被设计出来了。
链表的特点即,按需申请释放。
当我们需要一块空间时,我们就申请一块空间。当我们需要添加数据时,就继续增加一个一个小块。
主要是就是一个一个小块之间的连接。为了方便连接和管理,每一个结点中都存有一个指针,用于指向下一个结点。正式一个一个“链接”起来,所以叫做链表。

下面图中主要标识了顺序表和链表的逻辑结构的不同。
对于顺序表,我们只需要知道指向这块内存空间的指针即可。
但是对于链表,我们仅仅知道指向第一块内存空间的指针是不够的,因为一块与一块之间没有连接。所以对于每一块,都必须存有指向下一块空间的指针。

定义单链表的结构

链表的逻辑图:

链表的物理图:

//Single List Table
typedef int SLTDataType;
typedef struct SListNode
{SLTDataType data;struct SListNode* next;//SLTNode* next 是不可以的
}SLTNode;

下面,我们再来写一个打印单链表的的函数。

void PrintSList(SLTNode* phead)
{SLTNode* p = phead;while (p != NULL){printf("%d ", p->data);p=p->next;}printf("NULL\n");
}

然后,接下来,我们再来在主函数中自己建一个单链表,其实也就是开辟几个结点的空间,然后使得结点之间可以“链接”起来即可。

int main()
{SLTNode* n1 = (SLTNode*)malloc(sizeof(SLTNode));n1->data = 1;SLTNode* n2 = (SLTNode*)malloc(sizeof(SLTNode));n2->data = 2;SLTNode* n3 = (SLTNode*)malloc(sizeof(SLTNode));n3->data = 3;n1->next = n2;n2->next = n3;n3->next = NULL;PrintSList(n1);
}

由上图,我们可以知道代码的逻辑。

  • 动态分配内存,创建3个 SLTNode 类型的节点,并将其地址赋值给指针 n1、n2、n3。
  • 然后将3个结点的next字段都赋值。
  • 然后将链表链接起来。
    • n1->next = n2;将节点 n1 的 next 指针指向节点 n2,表示 n1 的下一个节点是 n2。
    • n2->next = n3;将节点 n2 的 next 指针指向节点 n3,表示 n2 的下一个节点是 n3。
    • n3->next = NULL;将节点 n3 的 next 指针设置为 NULL,表示链表到此结束。
  • 最后打印链表。


我们进行逐语句调试,在监视窗口中观察n1,n2,n3的变化。

我们可以看出来,n1、n2 和 n3 的物理地址并不连续。
根据结构体的定义,我们可以计算出结构体的大小。

如果内存连续,地址应该是:

而根据我们的监视信息,并非连续,这正是因为在代码中使用了 malloc 动态分配内存。
malloc 从堆中分配内存,而堆内存的分配通常是非连续的,具体取决于系统内存分配器的实现和当前堆内存的使用情况。因此,动态分配的内存块通常在物理地址上是分散的。



这一篇小博客,我们认识链表,下面我们将接着实现链表。
加油!

http://www.yayakq.cn/news/536066/

相关文章:

  • 大学生创业做网站的筹资方式接工程平台
  • 大连旅顺天气狼雨seo网站
  • 自己做的网站怎么做二维码高端品牌内衣
  • discuz 门户网站模板潍坊网站搜索引擎优化
  • 营销网站建设是什么意思如何做医美机构网站观察分析
  • 自己做网站自己买服务器网站设计专业公司
  • 网站管理人员队伍建设有待加强互联网营销师国家职业技能标准
  • 沧浪设计网站公司女人做春梦网站
  • 怎么在手机上设计网站WordPress手机导航登陆代码
  • 9元包邮网站怎么做龙岗建设网站公司
  • 游艇 高端网站建设做消费信贷网站价格
  • 网站建设 齐鲁软件园wordpress账号创建
  • 网站首页制作网站网站建设与管理实训心得
  • 东莞建设工程交易中心网站北京驾校网站建设
  • 域名备案后网站打不开全美东莞网站建设
  • 网站域名商微擎 网站开发工具
  • 外贸网站建设费用多少wordpress菜单图标左右
  • 深圳市网站建设公司排名百度开户怎么开
  • 制作网站在本机运行动画制作软件免费版
  • 一级a做爰片试看 免费网站陕西省工程建设交易服务中心网站
  • 做期货在哪个网站查资料字幕组 主页 wordpress
  • 分类信息有哪些网站网站建设发展指引
  • 网上给别人做设计的网站如何学网站开发
  • 网站建设需求调研过程.net 网站 iis 配置
  • 学校网站类型赣州新闻视频
  • 多少网站域名采用中文网站开发硬件成本
  • 设计公司做网站价格企业邮箱怎么注册免费版
  • 企业网站建设的价格企业招聘ppt模板免费
  • 凡科网建站教程门户网站推广方案
  • 人力资源公司网站模板玉山电商网站建设