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

wordpress可以做博客么郑州seo优化哪家好

wordpress可以做博客么,郑州seo优化哪家好,设计方案英文,西安 网站建设 培训学校目录 顺序表的问题及思考链表链表的概念及结构链表的分类单链表的实现链表功能实现遍历链表void SLTprint(SLNode* phead)代码 创造新节点SLNode* CreateNode(SLNDataType x)代码 顺序表的问题及思考 中间/头部的插入删除,时间复杂度为O(N),效率低,但是尾部插入效率…

目录

  • 顺序表的问题及思考
  • 链表
    • 链表的概念及结构
    • 链表的分类
    • 单链表的实现
    • 链表功能实现
      • 遍历链表void SLTprint(SLNode* phead)
        • 代码
      • 创造新节点SLNode* CreateNode(SLNDataType x)
        • 代码

顺序表的问题及思考

中间/头部的插入删除,时间复杂度为O(N),效率低,但是尾部插入效率可以

增容需要申请新空间,拷贝数据,释放旧空间,且增容一般是呈2倍的增长,会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。

链表

链表的概念及结构

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的

在这里插入图片描述
由于链表不像顺序表一样要求连续,所以我们需要一种方式来管理这些数据(因为空间不一定是连续,如果不管理的话可能就找不到数据)

这种方式就是我们需要找到最开始的一块空间,然后那块空间会告诉你下一块空间的地址在哪,只有这样你才能够找到链表中的所有数据

而满足这种方式只有是通过结构体实现,结构中包含了我们想要的数据,以及下一块空间的地址

当我们所有的数据都查找完后,我们需要有人提醒我们已经找到尽头了,所以在查找完最后一块空间时,那块空间记录的下一块空间地址为空指针,也就是告诉你不需要再往后查找

链表的分类

实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:
单向或者双向
带头或者不带头
循环或者非循环

虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构:

无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。

带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了

单链表的实现

typedef int SLNDataType;
typedef struct SListNode
{SLNDataType val;struct SListNode *next;
}SLNode;

这段代码是一个结构体里装这一个数据val和一个结构体指针next(next就是为了告诉你下一块空间的地址而存在的)

很多人可能有疑惑,认为结构体还没有实现完,为什么里面就可以包含一个结构体的指针

其实结构体的指针也是指针,结构体只要定义了,知道结构体的名称就可以实现内部包含一个结构体指针

如果我们把struct SListNode* next的*去掉,就会报错
在这里插入图片描述
此外这里有一个问题,如何计算上面链表中一个节点所占用内存的空间,这就涉及到结构占用内存的计算,在我之前的文章中有讲过

链表功能实现

遍历链表void SLTprint(SLNode* phead)

在这里插入图片描述
phead为第一块空间的地址,cur是为了避免在使用链表时phead会被使用者改变,导致我们找不到第一块空间地址的指针

代码
void SLTprint(SLNode* phead)
{SLNode* cur = phead;while (cur != NULL){printf("%d-> ", cur->val);cur = cur->next;}printf("NULL\n");
}

cur=cur->next是让cur去遍历链表,也就是cur指向cur的下一块节点的地址

当cur指向空时就意味着cur已经遍历完整个链表,所以直接跳出循环
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创造新节点SLNode* CreateNode(SLNDataType x)

因为对于链表创建节点是非常常见的一种操作,所以我们单独拿出来写成一个函数

代码
SLNode* CreateNode(SLNDataType x)
{SLNode* newnode = (SLNode*)malloc(sizeof(SLNode));if (newnode == NULL){perror("malloc fail");exit(-1);}newnode->val = x;newnode->next = NULL;return newnode;
}
http://www.khdw.cn/news/15878.html

相关文章:

  • php网站开发实例教程码源输入关键词进行搜索
  • 网站颜色搭配案例北京优化网站建设
  • 南京定制网站建设怎么收费百度站长工具
  • 中组部 两学一做 网站网页设计用什么软件
  • 做网站还得备案深圳百度推广seo公司
  • 网站排名效果好成都外贸seo
  • 有没有专业做电视测评的网站baidu百度一下
  • 网站已改版厦门人才网招聘
  • ps案例教程网站长春做网络优化的公司
  • 建设招聘网站需要哪些资质整合营销传播案例分析
  • 沈阳建设工程信息网 等级中项网seo免费课程视频
  • 做企业网站需要提供什么资料安卓手机优化软件哪个好
  • 太原专业制作网站正规seo大概多少钱
  • 有了网站源码怎么做网站北京外包seo公司
  • 继电器做网站关键词排名推广怎么做
  • 建网站需要软件网站流量查询网站统计查询
  • 网站租空间多少钱一年超级seo助手
  • 湖北建设部网站网络营销的基本职能
  • 怎么做网站背景国际局势最新消息今天
  • oa办公系统开发厦门seo网站优化
  • jquery网站开发实例hao123网址导航
  • 租二级目录做网站离我最近的电脑培训中心
  • 网站建设入门基础网站页面关键词优化
  • 网络运营推广经验独立站谷歌seo
  • 协会网站模板互联网广告推广是什么
  • 中国网上购物平台有哪些seo搜索引擎优化推荐
  • buyao 学网站开发今天微博热搜前十名
  • 动易cms网站后台很慢是什么原因提高工作效率的重要性
  • 重庆外贸网站建设公司网络推广员怎么做
  • 导航网站超链接如何做seo关键词优化价格