唐山做网站的杭州做网站外包公司哪家好

bicheng/2026/1/27 3:34:00/文章来源:
唐山做网站的,杭州做网站外包公司哪家好,软件商店2023,找第三方做网站 需要注意博主介绍#xff1a;✌全网粉丝喜爱、前后端领域优质创作者、本质互联网精神、坚持优质作品共享、掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战✌有需要可以联系作者我哦#xff01; #x1f345;附上相关C语言版源码讲解#x1f345; #x1f44… 博主介绍✌全网粉丝喜爱、前后端领域优质创作者、本质互联网精神、坚持优质作品共享、掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战✌有需要可以联系作者我哦 附上相关C语言版源码讲解 精彩专栏推荐订阅 不然下次找不到哟 文章目录 一、链表定义 二、链表实战 1、单链表C语言实现版本 2、双链表C 三、分析总结 优点 应用 小结 大家点赞、收藏、关注、评论啦 谢谢哦如果不懂欢迎大家下方讨论学习哦。 一、链表定义 链表是一种数据结构它由一系列节点组成这些节点按顺序连接在一起形成链式结构。每个节点包含数据和指向下一个节点的引用指针。链表的最后一个节点通常指向一个特定的值如空值或null表示链表的结束。 链表是一种数据结构它由一系列节点组成这些节点按顺序连接在一起形成链式结构。每个节点包含数据和指向下一个节点的引用指针。链表的最后一个节点通常指向一个特定的值如空值或null表示链表的结束。 链表可以分为单链表和双链表两种主要类型 1. 单链表Singly Linked List每个节点包含数据和指向下一个节点的指针。链表的最后一个节点指向null。 节点1 节点2 节点3 | 数据1 | - | 数据2 | - | 数据3 | - null2. 双链表Doubly Linked List每个节点包含数据、指向下一个节点的指针以及指向前一个节点的指针。这使得在双链表中可以更方便地进行前向和后向遍历。 null - | 数据1 | - | 数据2 | - | 数据3 | - null链表优点  链表相对于数组的优势在于插入和删除操作的效率较高因为不需要移动大量元素只需调整节点的指针。然而链表的缺点是访问元素时需要按顺序遍历而数组可以通过索引直接访问元素。链表在内存中不需要连续的存储空间因此可以更灵活地分配内存。 二、链表实战 1、单链表C语言实现版本 #include stdio.h #include stdlib.h// 定义节点结构 struct Node {int data; // 节点数据struct Node* next; // 指向下一个节点的指针 };// 定义链表结构 struct LinkedList {struct Node* head; // 链表头指针 };// 初始化链表 void initLinkedList(struct LinkedList* list) {list-head NULL; // 将头指针初始化为NULL表示链表为空 }// 在链表末尾添加节点 void append(struct LinkedList* list, int data) {// 创建新节点struct Node* new_node (struct Node*)malloc(sizeof(struct Node));new_node-data data;new_node-next NULL;// 判断链表是否为空if (list-head NULL) {// 如果为空将新节点设为头节点list-head new_node;} else {// 如果不为空找到链表末尾将新节点链接到末尾struct Node* current list-head;while (current-next ! NULL) {current current-next;}current-next new_node;} }// 在链表开头添加节点 void prepend(struct LinkedList* list, int data) {// 创建新节点struct Node* new_node (struct Node*)malloc(sizeof(struct Node));new_node-data data;new_node-next list-head;// 将新节点设为头节点list-head new_node; }// 删除节点 void deleteNode(struct LinkedList* list, int data) {struct Node* current list-head;struct Node* prev NULL;// 遍历链表找到待删除节点及其前一个节点while (current ! NULL current-data ! data) {prev current;current current-next;}// 如果找到待删除节点if (current ! NULL) {// 如果待删除节点不是头节点if (prev ! NULL) {prev-next current-next;} else {// 如果待删除节点是头节点list-head current-next;}free(current); // 释放内存} }// 更新节点 void updateNode(struct LinkedList* list, int oldData, int newData) {struct Node* current list-head;// 遍历链表找到待更新节点while (current ! NULL current-data ! oldData) {current current-next;}// 如果找到待更新节点if (current ! NULL) {current-data newData; // 更新节点数据} }// 搜索节点 struct Node* searchNode(struct LinkedList* list, int data) {struct Node* current list-head;// 遍历链表找到包含指定数据的节点while (current ! NULL current-data ! data) {current current-next;}return current; // 返回节点指针 }// 显示链表内容 void display(struct LinkedList* list) {struct Node* current list-head;while (current ! NULL) {printf(%d - , current-data);current current-next;}printf(NULL\n); }// 释放链表内存 void freeLinkedList(struct LinkedList* list) {struct Node* current list-head;struct Node* next NULL;while (current ! NULL) {next current-next;free(current);current next;}list-head NULL; }int main() {struct LinkedList myLinkedList;initLinkedList(myLinkedList);// 添加节点append(myLinkedList, 1);append(myLinkedList, 2);append(myLinkedList, 3);// 显示链表内容printf(链表内容);display(myLinkedList);// 在开头添加节点prepend(myLinkedList, 0);// 显示链表内容printf(在开头添加节点后的链表);display(myLinkedList);// 删除节点deleteNode(myLinkedList, 2);// 显示链表内容printf(删除节点后的链表);display(myLinkedList);// 更新节点updateNode(myLinkedList, 1, 10);// 显示链表内容printf(更新节点后的链表);display(myLinkedList);// 搜索节点int searchData 10;struct Node* searchResult searchNode(myLinkedList, searchData);if (searchResult ! NULL) {printf(找到数据为 %d 的节点。\n, searchData);} else {printf(未找到数据为 %d 的节点。\n, searchData);}// 释放链表内存freeLinkedList(myLinkedList);return 0; }执行结果详细 2、双链表C #include iostream #include cstdlib #include cstdio using namespace std; typedef struct Node { int data; struct Node *prior; struct Node *next; } LinkList; LinkList *Create() { LinkList *head; head(LinkList*)malloc(sizeof(LinkList)); if(head!NULL) { head-priorNULL; head-nextNULL; return head; } else return NULL; } int Insert(LinkList *head,int e) //尾插法 { LinkList *p; LinkList *qhead; p(LinkList*)malloc(sizeof(LinkList)); if(p!NULL) { p-datae; p-priorNULL; p-nextNULL; while(q-next!NULL) { qq-next; } q-nextp; return 1; } return 0; } LinkList* Change(LinkList *head) //变成双向链表后返回一个尾指针 { LinkList *p,*q; phead; qp-next; while(q!NULL) { q-priorp; pp-next; qq-next; } return p; } void Output1(LinkList *head) //从头到尾遍历输出 { LinkList *p; phead-next; while(p!NULL) { printf(%d ,p-data); pp-next; } printf(\n); } void Output2(LinkList *tail) //从尾到头遍历输出 { LinkList *p; ptail; while(p-prior!NULL) { printf(%d ,p-data); pp-prior; } printf(\n); } void FreeLink(LinkList *head) //释放 { LinkList *p,*q; phead; qNULL; while(p!NULL) { qp; pp-next; free(q); } } int main() { LinkList *phead,*tail; int n,e,flag; pheadCreate(); if(phead!NULL) { cout请输入长度:;scanf(%d,n); for(int i0;in;i) { scanf(%d,e); flagInsert(phead,e); }cout从头到尾输出为: ;Output1(phead); tailChange(phead); cout从尾到头输出为: ;Output2(tail); FreeLink(phead); } return 0; }代码执行结果 三、分析总结 链表是一种常见的数据结构具有一些优点和应用 优点 1. 动态内存分配链表允许在运行时动态分配内存这使得它更加灵活不需要预先指定存储空间大小通过动态分配内存可以实现降低时间运行成本。 2. 插入和删除效率高在链表中插入和删除节点相对容易且效率较高。相比之下数组在中间或开头插入/删除元素可能需要移动大量元素。 3. 大小可变*链表可以根据需要动态增长或缩小而不浪费内存。 应用 1. 实现动态数据结构链表常用于实现其他动态数据结构如栈、队列、图等。 2. 内存分配动态链表的能力使其在动态内存分配的场景中非常有用例如动态分配内存的链表可用于管理操作系统的进程列表。 3. 实现算法链表常用于算法实现例如链表在排序算法、图算法等方面有广泛的应用。 4. 嵌入式系统 在资源受限的嵌入式系统中链表可以更好地处理动态数据。 5. LRU缓存淘汰算法链表可以用于实现LRULeast Recently Used缓存淘汰算法用于管理缓存中的数据。 6. 数据库数据库中的索引通常使用链表实现以支持高效的插入和删除操作。 总的来说链表在许多场景中都是一种强大且灵活的数据结构特别适合那些需要频繁插入和删除操作的应用。 小结 大家点赞、收藏、关注、评论啦 谢谢哦如果不懂欢迎大家下方讨论学习哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress修改站点名做游戏网站的背景图片

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

200m网站空间多少钱WordPress集成插件到主题

哈喽,你好啊,我是雷工! 曾经在一个群里聊天,有群友看到我两位数的浏览量,说到:浏览量这么低还坚持什么? 浏览量低是事实,大多数是十几二十的,上百的都是少数&#xff0c…

手机网站类型网站内部seo

往期回顾 【QT入门】 Qt代码创建布局之setLayout使用-CSDN博客 【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】 QTabWidget各种常见用法详解-CSDN博客 【QT入门】 QListWidget各种常见用法详解之列表模式 QListWidget有列表和图标两种显示模式&a…

下载类网站 建设方案成品网站w灬源码伊园

1. 缩放(Scale): 缩放是指改变图像的尺寸大小。在OpenCV中,可以使用cv2.resize()函数来实现图像的缩放操作。该函数接受源图像、目标图像大小以及插值方法作为参数。 示例代码:i mport cv2# 读取图像image cv2.imr…

wordpress 导入mht如何优化网站提高排名

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言 文章目录 一、课程设计目的二、课程设计内容三、课程设计步骤四、课程设计总结 一、课程设计目的 掌握 CPU …

邯郸市住房和城建设局网站北京西站到八达岭长城最快路线

数据(事实,数字,价值)是当今业务运行的核心要素。但是,如果数据没有得到有效的存储和传输,它们就会成为阻碍业务发展的障碍。如果企业不能及时地把数据送到合适的地方,就会造成严重的经济损失。…

seo搜索引擎优化排名哪家更专业seo推广怎么做

asp.net core 使用 signalR(一)IntroSignalR 是什么?ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。实时 Web 功能使服务器端代码能够即时将内容推送到客户端。SignalR 的适用对象:需…

网站建设费属于广宣费吗关于字体设计的网站

pytest-bdd 的文件的命名规范 pytest-bdd 是基于pytest 之上,所以需要遵循pytest 的命名规则才能进行测试,具体有: 测试文件名必须以*test.py或者test*.py命名测试函数必须以 test_开头 在pytest-bdd中存在两类文件: 以 .feat…

电子商务网站策划wordpress列表显示文章

URL 中 pathname 的命名规则 pathname 是 URL 中标识特定资源或页面的路径部分。它通常遵循以下命名约定: 使用小写字母和连字符:路径名应使用小写字母和连字符(-)分隔单词。避免使用大写字母、下划线或其他特殊字符。使用描述性…

金华建站方案什么是网络营销产生的技术原因

一、镜像分层 1、镜像概念: 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,将应用程序和配置依赖打包好行成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。 2、镜像分层&#xff1a…

网站建设与维护成本客户管理软件 crm

随感 之前一阵子的学习,感觉轻飘飘的 一直是被灌输的学习一些相关技术 不知到原因不会用 仅限于看得懂,现在回想确实 不仅如此 以前也是如此 一直都没有思索过,最近机缘巧合了解到学习it的三部what how why 自己且不讲why层 how层都没怎么主…

有阿里云的主机了怎么做网站如何分析企业网站

bat设置变量 echo off set /p a请输入mp4名称(最好是在assets/video文件下存储): echo %a%bat设置utf-8编码 Chcp 65001m4s保存保存 注意: 需要下载ffmpeg并保存在系统环境变量中方可执行 echo off#设置utf-8编码 chcp 65001set /p a请输入mp4名称(最好是在assets/video文件下…

唐山建设网站的网站wordpress主题加速插件

Mediator(中介者)–对象行为型模式 一、意图 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 二、动机 1.在软件构建过程中,经常…

政务网站源码舆情监测系统方案

下面为您介绍的方法用于实现在线重做Oracle日志文件大小,如果您在Oracle日志文件方面遇到过类似的问题的话,不妨一看。1、创建2个新的日志组alter database add logfile group 4 (D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG) size 1024k;alter database add …

盐城做网站网络公司电话?广东模板建站平台

群晖NAS配置之自有服务器ngrok实现内网穿透 前言-内网穿透 内网穿透是指通过一种技术让外部网络可以访问到内网的NAS设备,这样即使在不同网络环境下,也能够远程访问和管理NAS设备。以下是一些常见的内网穿透方案: Synology官方提供的Quick…

专门做潮搭的网站网络营销服务平台

Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法。 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。 先来看第一种: 比如json字符串为:[{“name”:”name0”,”age”:0…

长春的网站建设idea可以做网站吗

目录 491 递增子序列 46 全排列 491 递增子序列 在dfs中进行判断,如果path的长度大于1,则将其添加到res中。 本题nums中的元素的值处于-100与100之间,可以将元素映射0到199之间并且通过布尔数组st来记录此层中元素是否被使用过,…

做影视网站引流企业网址下载

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

.net域名可以做银行网站吗笔杆子写作网站

给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 示例 1: 输入:root [5,3,6,2,4,null,8,1,null…

企业网站做百度排名要怎么做广州建设银行网站首页

上一讲我们介绍了如何写让模板变量在页面上展示,本讲我们介绍一下后端开发工作中最常用的功能——接口。创建一个go_test4文件夹,然后把go_test3中的代码复制进去。然后打开main.go文件,进行更改。说到接口就必不可少的涉及到传值和接口返回&…