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

广州哪家公司做网站好/数据分析师一般一个月多少钱

广州哪家公司做网站好,数据分析师一般一个月多少钱,wordpress评论后显示,java .net做网站文章转载请注明出处,加上原文地址链接,谢谢!https://blog.csdn.net/weixin_46959681/article/details/110536329 文章目录什么是数据结构什么是链表常用的链表有哪些静态链表的增删使用while循环实现链表的遍历和节点的统计第一次写编程语言相…

文章转载请注明出处,加上原文地址链接,谢谢!https://blog.csdn.net/weixin_46959681/article/details/110536329


文章目录

    • 什么是数据结构
    • 什么是链表
    • 常用的链表有哪些
    • 静态链表的增删
    • 使用while循环实现链表的遍历和节点的统计
    • 第一次写编程语言相关的博客
    • 文章更新记录


什么是数据结构

数据结构就是研究数据的逻辑结构和物理结构以及它们之间的相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后得到的新的结构体仍然是原来的结构体。


什么是链表

数据结构决定了数据的顺序和位置关系。 链表属于数据结构的思想之一。链表操作之后结果仍然是链表。在链表中数据呈现线性排列,其中数据的添加和删除都较为方便。

顺序访问。 存储于链表中的数据一般都是分散存储于内存中,无需存储在连续空间内,因此数据的访问比较耗费时间。 因此若想找到数据 Red ,必须要从数据 Blue 开始。

顺序访问

添加数据。 在链表中添加数据,只需要改变添加位置前后的指针指向即可。

添加数据


常用的链表有哪些

循环链表:循环链表没有头和尾的概念,尾部用一个指针指向头部。使用该链表用于保存数量固定的最新数据。
循环链表

代码演示: color.c

/* color.c */
#include <stdio.h>struct color
{ 		int data;//指针在没有被赋予指向的对象时为一个野指针NULL。struct color *next;
};int main()
{	struct color Blue = {1,NULL};struct color Yellow = {2,NULL};struct color Red = {3, NULL};//三者通过指针操作建立了一个循环。Blue.next = &Yellow; Yellow.next = &Red;Red.next = &Blue;//为了配上蓝、黄、红三个节点的指针指向,故使用了这种比较土的写法。printf("%d %d %d\n", Blue.data, Blue.next->data, Blue.next->next->data); 	return 0;
}

双向链表:链表里的每个数据都有两个指针,让其分别指向前后数据。这种链表不仅能从前往后,还可以从后往前遍历数据。但双向链表存在两个缺陷:一是指针数量的增加的会导致存储空间需求增加;二是添加和删除数据时需要改变更多指针的指向。
双向链表

四张图片来自《我的第一本算法书》。


静态链表的增删

在下面的代码中,笔者在使用结构体以及使用指针访问结构体的方式创建了一个只有四个节点的静态链表,从代码里可以看到该链表中仅有四个数据。相比于大小固定的数组,链表在增删数据方面十分简便,可以直接在代码中增加结构体成员和相应的指针操作完成增删,如新增节点 t5 。删除节点仅需删除对应节点的代码。


使用while循环实现链表的遍历和节点的统计

在代码中使用封装的函数 getLinkTotalNodeNum() 实现节点的统计和 printLink() 实现链表的遍历,请直接阅读代码。

#include <stdio.h>struct Test
{ 	int data;//结构体中的指针指向是链表的核心操作。struct Test *next; 
};int getLinkTotalNodeNum(struct Test *head)
{ 		//统计链表节点数。int count = 0;struct Test *point;//保留链表头。 point = head; while(point != NULL){count++;//指针位移。point = point->next;}return count;
}void printLink(struct Test *head)
{ //遍历链表。struct Test *point;point = head;printf("链表遍历:");while(point != NULL){printf("%d ", point->data);//在循环中进行指针位移达到遍历链表的目的。point = point->next; }putchar('\n');
}int main()
{struct Test t1 = {1,NULL};struct Test t2 = {2,NULL};struct Test t3 = {3,NULL};struct Test t4 = {4,NULL};//新增的第五个节点。struct Test t5 = {5,NULL}; //第一个节点为链表头。struct Test *head; head = &t1;t1.next = &t2;t2.next = &t3;t3.next = &t4; //第四个节点的指针域内部的指针指向了新增的第五个节点。t4.next = &t5; //将链表头作为参数传递给函数 printLink()。printLink(head); int ret = getLinkTotalNodeNum(head);printf("链表节点数:%d\n", ret); return 0;
}

第一次写编程语言相关的博客

笔者作初学C语言编程的新手,学习过程中仅基于自己粗糙的理解和相应的资料做出本人的第一篇C语言博文。后天笔者会写出第二篇博客——指定节点的前方、后方插入新节点等内容。


文章更新记录

  • 文章大体初步完成。「2020.12.3 22:13」
  • 链表节点统计与遍历合并为一节。「2020.12.4 15:47」
  • 增加循环链表的代码演示。「2020.12.4 20:00」
  • 修改了演示用的代码。「2020.12.5 10:40」
  • 循环链表中的代码错误修该完毕。「2020.12.8 10:28」
  • 修改了演示用的代码。「2021.1.9 14:50」
  • 修改了演示用的代码。「2021.2.7 20:41」
http://www.lbrq.cn/news/1069705.html

相关文章:

  • 个人响应式网站建设/百度企业官网
  • 江苏省建设集团是国企吗/爱站网seo培训
  • 深圳网站建设软件开发公司/今日重大事件
  • 淘宝客如何做免费的网站/品牌型网站设计推荐
  • 做众筹网站需要什么条件/快速收录域名
  • 南陵网站建设/上海牛巨微网络科技有限公司
  • 网站建设质量保证金/营销策划案
  • 绿色大气5.7织梦网站模版/网站关键词怎么设置
  • 网站右边上下浮动代码/优化网站的方法
  • 投资项目网站建设方案/学大教育培训机构电话
  • 满山红网站建设/重庆关键词排名推广
  • 大庆市工程建设信息去哪个网站/成都seo培训
  • 政府网站功能模块有哪些/单页网站排名优化
  • 学编程入门/百家号优化
  • 易托管建站工具/服务营销论文
  • 做网站的电话号码/seo优化对网店的推广的作用为
  • 做男鞋的网站/站长工具whois查询
  • app开发公司介绍/百度关键词seo
  • 做任务挣钱的网站聚/蜜雪冰城网络营销案例分析
  • 大专生毕业论文怎么写/seochan是什么意思
  • 深圳网站建设艺之都/代写文章哪里找写手
  • 安徽省住房和城乡建设委员会网站/微信投放广告多少钱
  • 洛阳青峰网络公司做网站/广告传媒公司经营范围
  • 做网站的像素/中山seo排名
  • 网络宣传策划方案模板/seo关键词查询排名软件
  • 托管服务器是什么意思/优化百度搜索
  • 外链都没有的网站如何做排名的/教育培训网站官网
  • 织梦免费机械网站源码/爱战网关键词挖掘
  • 自己做彩票网站犯法吗/三十个知识点带你学党章
  • wordpress导购插件/视频优化是什么意思
  • 【Bluetooth】【Transport层篇】第四章 基于基础UART的蓝牙硬件发送协议 UART H4 Transport详解
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • #C语言——刷题攻略:牛客编程入门训练(四):运算
  • Unix 发展史概览
  • 系统性学习数据结构-第一讲-算法复杂度
  • 疯狂星期四文案网第27天运营日记