做网站的团队电子商务营销优势

pingmian/2026/1/21 18:06:04/文章来源:
做网站的团队,电子商务营销优势,网站制作公司制作网站的流程是怎样的呢,wordpress怎么发长文章什么是链表 离散#xff0c;就是“分离的、散开的” 链表是什么样子的#xff1a; 有限个节点离散分配 彼此间通过指针相连 除了首尾节点#xff0c;每个节点都只有一个前驱节点和一个后继节点 首节点没有前驱结点#xff0c;尾节点没有后继节点 基本概念术语#xf…什么是链表 离散就是“分离的、散开的” 链表是什么样子的 有限个节点离散分配 彼此间通过指针相连 除了首尾节点每个节点都只有一个前驱节点和一个后继节点 首节点没有前驱结点尾节点没有后继节点 基本概念术语 首节点第一个存放有效数据的节点 尾节点最后一个存放有效数据的节点 头节点是首节点前面的那个节点。头结点里面不存放数据有效数据是从首节点开始存的 头结点存在的目的是什么 对链表进行操作的时候在前面加上一个没有实际含义的头节点可以方便对链表进行操作 头指针指向头节点的指针变量存放了头节点的地址 尾指针指向尾节点的指针变量存放了尾节点的地址 链表中所有的节点的数据类型都是一样的包括头结点 确定一个链表最少需要几个参数 只需要一个参数头指针 通过头指针可以得到一个链表的其他所有信息 链表节点的数据类型怎么表示 每一个节点都有数据域和指针域两部分 尾节点除外的每一个节点的指针域指向了下一个节点的[节点整体] 这个[节点整体]的数据类型跟他的前一个节点的数据类型是完全一样的 也就是说一个结构体变量中的某一成员指向了跟它整体这个结构体变量一样的数据类型 因为第一个节点的指针域指向了第二个节点整体而第二个节点整体和第一个节点整体的数据类型是一模一样的 说的抽象一点就是某一结构体的变量中的一个成员指向了和它本身的数据类型一样的另一个变量 typedef struct Node { int data;//数据域 struct Node* pNext;//指针域   }NODE,*PNODE; //NODE是struct Node类型PNODE是struct Node*类型 /* 指针域指向了和它整体本身的数据类型一模一样的另一个变量的整体 指针域存放的是下一个节点的地址所以应该是【下一个节点的数据类型*】 类型的指针变量 下一个节点跟这个节点本身的数据类型一样都是struct Node类型 所以指针域的指针变量的类型是struct Node*类型 */ 链表的分类 ·单链表 ·双链表 每一个节点都有两个指针域 ·循环链表 能通过任何一个节点找到其他所有的节点 ·非循环链表 非循环单链表的创建和遍历 #includestdio.h #includemalloc.h #includestdlib.h typedef struct Node { int data;//数据域 struct Node* pNext;//指针域   }NODE, * PNODE; //NODE是struct Node类型PNODE是struct Node*类型 /*   指针域指向了和它整体本身的数据类型一模一样的另一个变量的整体   指针域存放的是下一个节点的地址所以应该是【下一个节点的数据类型*】 类型的指针变量   下一个节点跟这个节点本身的数据类型一样都是struct Node类型   所以指针域的指针变量的类型是struct Node*类型  */ PNODE createList(); void traverseList(PNODE pHead); int main() { PNODE pHead NULL; //等价于struct Node* PHead NULL; pHead createList();//创建一个非循环单链表并将链表的头结点的地址赋给pHead traverseList(pHead); return 0; } PNODE createList() { int len;//用来存放链表有效节点的个数 int val;//用来临时存放用户输入的节点的个数 /*   pHead是一个头指针pHead指向了头结点   这个头结点不存放有效数据*/ PNODE pHead (PNODE)malloc(sizeof(NODE)); if (pHead NULL) { printf(内存分配失败程序终止\n); exit(-1); } PNODE pTail pHead; pTail-pNext NULL; printf(请输入需要生成的链表节点的个数); scanf(%d, len); for (int i 0; i len; i) { printf(请输入需要生成的链表节点值); scanf(%d, val); PNODE pNew (PNODE)malloc(sizeof(NODE)); if (pHead NULL) { printf(内存分配失败程序终止\n); exit(-1); } pNew-data val; pTail-pNext pNew; pNew-pNext NULL; pTail pNew; } /*   循环了len次每一次都创建并分配了一个新节点用pNew指针变量表示这个新节点   创建了新节点后为新节点数据域赋值   创建了一个pTail指针变量链表中没有有效节点之前pTail指向头结点此时头指针pHead和pTail都指向头结点   创建了一个新节点之后为新节点赋值数据域pNew-data val   pTail指针变量指向的节点最开始是头结点之后是链表中最后一个节点的指针域存上新节点的地址pTail-pNext pNew   此时pTail指针变量指向的是倒数第二个节点   将新茶入的节点的指针域置空pNew-pNext NULL   将pTail指针变量指到最后一个新插入的节点上确保下一次插入新节点之前pTail总是指到当前链表最后一个节点上   pTail pNew*/ return pHead; } void traverseList(PNODE pHead) { PNODE p pHead-pNext; while (NULL ! p) { printf(%d , p-data); p p-pNext; } printf(\n); } 非循环单链表插入节点 非循环单链表删除节点 链表排序算法 链表冒泡排序 void sortList(PNODE pHead) { if (isEmpty(pHead)) { printf(链表为空无法排序); exit(-1); } PNODE p, q; int i, j; int n numNode(pHead);//求链表有效节点个数 for (i 0, p pHead-pNext; i n - 1; i, p p-pNext) { for (j 0, q pHead-pNext; j n - 1 - i; j, q q-pNext) { if (q-data q-pNext-data) { int t q-data; q-data q-pNext-data; q-pNext-data t; } } } } 由以下数组冒泡排序改编 //数组冒泡排序 for (int i 0; i n - 1; i) { for (int j 0; j n - 1 - i; j) { if (a[j] a[j 1]) { int t a[j]; a[j] a[j 1]; a[j 1] t; } } } 链表完整代码 #includestdio.h #includemalloc.h #includestdlib.h typedef struct Node { int data;//数据域 struct Node* pNext;//指针域   }NODE, * PNODE; //NODE是struct Node类型PNODE是struct Node*类型 /*   指针域指向了和它整体本身的数据类型一模一样的另一个变量的整体   指针域存放的是下一个节点的地址所以应该是【下一个节点的数据类型*】 类型的指针变量   下一个节点跟这个节点本身的数据类型一样都是struct Node类型   所以指针域的指针变量的类型是struct Node*类型  */ PNODE createList();//创建 void traverseList(PNODE pHead);//遍历 bool isEmpty(PNODE pHead);//判空 int numNode(PNODE pHead);//求链表有效节点个数 void sortList(PNODE pHead);//排序 bool insertNode(PNODE pHead, int pos, int val);//插入节点 bool deleteNode(PNODE pHead, int pos);//删除节点 int main() { PNODE pHead NULL; //等价于struct Node* PHead NULL; pHead createList();//创建一个非循环单链表并将链表的头结点的地址赋给pHead traverseList(pHead);//遍历 if (isEmpty(pHead)) printf(链表为空); else printf(链表非空); //求链表有效节点的个数 printf(链表中有效节点的个数为%d\n, numNode(pHead)); sortList(pHead); traverseList(pHead);//遍历 insertNode(pHead, 1, 125); traverseList(pHead);//遍历 deleteNode(pHead, 1); traverseList(pHead);//遍历 return 0; } PNODE createList() { int len;//用来存放链表有效节点的个数 int val;//用来临时存放用户输入的节点的个数 /*   pHead是一个头指针pHead指向了头结点   这个头结点不存放有效数据*/ PNODE pHead (PNODE)malloc(sizeof(NODE)); if (pHead NULL) { printf(内存分配失败程序终止\n); exit(-1); } PNODE pTail pHead; pTail-pNext NULL; printf(请输入需要生成的链表节点的个数); scanf(%d, len); for (int i 0; i len; i) { printf(请输入需要生成的链表节点值); scanf(%d, val); PNODE pNew (PNODE)malloc(sizeof(NODE)); if (pHead NULL) { printf(内存分配失败程序终止\n); exit(-1); } pNew-data val; pTail-pNext pNew; pNew-pNext NULL; pTail pNew; } /*   循环了len次每一次都创建并分配了一个新节点用pNew指针变量表示这个新节点   创建了新节点后为新节点数据域赋值   创建了一个pTail指针变量链表中没有有效节点之前pTail指向头结点此时头指针pHead和pTail都指向头结点   创建了一个新节点之后为新节点赋值数据域pNew-data val   pTail指针变量指向的节点最开始是头结点之后是链表中最后一个节点的指针域存上新节点的地址pTail-pNext pNew   此时pTail指针变量指向的是倒数第二个节点   将新茶入的节点的指针域置空pNew-pNext NULL   将pTail指针变量指到最后一个新插入的节点上确保下一次插入新节点之前pTail总是指到当前链表最后一个节点上   pTail pNew*/ return pHead; } void traverseList(PNODE pHead) { PNODE p pHead-pNext; while (NULL ! p) { printf(%d , p-data); p p-pNext; } printf(\n); } bool isEmpty(PNODE pHead) { if (pHead-pNext NULL) return true; else return false; } int numNode(PNODE pHead) { PNODE p pHead-pNext; int num 0; while (p ! NULL) { num; p p-pNext; } return num; } void sortList(PNODE pHead) { if (isEmpty(pHead)) { printf(链表为空无法排序); exit(-1); } PNODE p, q; int i, j; int n numNode(pHead);//求链表有效节点个数 for (i 0, p pHead-pNext; i n - 1; i, p p-pNext) { for (j 0, q pHead-pNext; j n - 1 - i; j, q q-pNext) { if (q-data q-pNext-data) { int t q-data; q-data q-pNext-data; q-pNext-data t; } } } } bool insertNode(PNODE pHead, int pos, int val) { PNODE p pHead; int i 0; while (p i pos) { p p-pNext; i; } if (p NULL || i pos) { return false; } PNODE pNew (PNODE)malloc(sizeof(NODE)); if (pNew NULL) { printf(动态内存分配失败); return false; } pNew-data val; pNew-pNext p-pNext; p-pNext pNew; return true; } bool deleteNode(PNODE pHead, int pos) { int i 0; PNODE p pHead; while (p i pos) { p p-pNext; i; } if (!p || i pos) return false; PNODE q (PNODE)malloc(sizeof(NODE)); q p-pNext; p-pNext p-pNext-pNext; free(q); return true; }

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

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

相关文章

医院网站建设 不足重庆设计网站

一. 简介 EF连接数据库有三种模式,分别是DBFirst、ModelFirst、CodeFirst,分别适用于不同的开发场景。 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和MySql数据库两种操作方式 该模式在EF中出现的出现的最早,符合我们的传统…

ps做字幕模板下载网站网站每天更新的内容是内链吗

哈尔滨工业大学计算机专业创建于1956年,是中国最早的计算机专业之一。在1985年, 它又发展成计算机科学与工程系,并建立了计算机科学技术研究所。2000年,计算机科学与技术学院成立。同年,建立了软件学院,后经国家教育部、国家计委批…

电子商务网站开发费用调研报告图片制作在线生成器免费版

概述 在计算器科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定排序方式进行排列的一种算法。本文将总结几类常用的排序算法,包括冒泡排序、选择排序、插入排序、快速排序和归并排序&…

jsp网站开发实例与发布网络营销热门岗位

![1.png](https://ucc.alicdn.com/pic/developer-ecology/5dffeef22eb74645a35be2f60b5e54c6.png) 作者 | 亦盏 前言 随着微服务的流行,越来越多公司使用了微服务框架,微服务以其高内聚、低耦合等特性,提供了更好的容错性,也…

做网站网武昌做网站多少钱

序言 对于GPT-4我只是一个门外汉,至于我为什么要了解screenshot to code,只是因为我想知道,在我不懂前端设计的情况下,能不能通过一些工具辅助自己做一些简单的前端界面设计。如果你想通过此文深刻了解GPT-4或者该开源项目&#…

做网站链接怎么弄自己怎么设计公园

导读:知识图谱的构建技术主要有自顶向下和自底向上两种。其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里。而自底向上构建,则是借助一定的技术手段,从公开采集的…

网站群建设规范定制开发小程序

一、环境空间的特点 环境空间是一种特殊类型的变量,它可以像其它变量一样被分配和操作,还可以以参数的形式传递给函数。 R语言中环境空间具有如下3个特点: 1、对象名称唯一性 此特点指的是在不同的环境空间中可以有同名的变量出现&#x…

正规的锦州网站建设新钥匙建站

Java面试题_2024新版Java高频面试题Java八股文面试真题 Java高频面试专题视频课程,瓤括了Java生态下的主流技术面试题,课程特色: 1、全面,jvm、并发编程、mysql、rabbitmq、spring、mybatis、redis、分布式、微服务、数据结构等等…

公司网站开发费计入什么科目定制旅游网站有哪些

近日,2020首届全国信创产业生态创新大赛颁奖盛典在北京信创园举办,霍因科技提交的“霍因科技-信创云统一存储和数据湖方案”荣获生态创新奖,这彰显了霍因科技在以数据存储技术推动信息技术应用创新产业方面的卓越成就。 据悉,首届…

湛江网站模网站建设vipjiuselu

1、NoSQL: 指的是非关系型数据库,主要分成四大类:键值存储数据库、列存储数据库、文档型数据库、图形数据库。 2、什么是Redis: Redis是一种基于内存的数据库,一般用于做缓存的中间件。 3、Redis的主要的特点: 1、Rd…

制冷机电工程东莞网站建设p2f网站系统

目录 一、性能测试的指标 1、并发量 2、响应时间 3、错误率 4、吞吐量 5、资源使用率 二、压测全流程 三、其他注意点 1、并发和吞吐量的关系 2、并发和线程的关系 四、调优及分布式集群压测(待仔细学习) 1.线程数量超过单机承载能力时的解决…

杭州网站维护公司商务型网站模板

「11」显示器采集捕获单个显示器的完整视频画面 在OBS软件中,「显示器采集」是一种用于捕集显示器屏幕画面的功能,您可以将其用于整个桌面窗口的采集到直播间。该功能主要用于捕捉您的计算机桌面屏幕内容,以便将其实时显示在直播窗口中&#…

个人网站建设制作asp网站发布ftp

vue和thymeleaf : 若先显示框架后加载数据则用vue 若后端处理好之后发送给前端页面显示用thymeleaf (弹幕) 对于前后端分离的认识: 使用vue 将前端页面、框架等建立好,只需要后端发送数据即可 但thymeleaf就需要在服务器启动之前将数据保存到…

wap网站设计上海交通大学毕业设计网站

HashSet存储自定义对象保证元素唯一性图解原理及代码优化 1.原理: * 1.HashSet原理 * 我们使用Set集合都是需要去掉重复元素的, 如果在存储的时候逐个equals()比较, 效率较低,哈希算法提高了去重复的效率, 降低了使用equals()方法的次数 * 当Hash…

网站内容建设出现的问题怎么更改wordpress主题的字体

一:背景 1. 讲故事 中秋国庆长假结束,哈哈,在老家拍了很多的短视频,有兴趣的可以上B站观看:https://space.bilibili.com/409524162 ,今天继续给大家分享各种奇奇怪怪的.NET生产事故,希望能帮助…

浙江华企做网站哪些网站是用织梦做的

1.安装Git、TortoiseGit和汉化包 Git官网: Git TortoiseGit和汉化包: Download – TortoiseGit – Windows Shell Interface to Git 2.常用命令 创建仓库命令 git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目。提交与修改 git add添加文件到暂存区git…

玄武建设局网站惠州网站建设 鑫

阶段性反馈机制(如何持之以恒、让自己发疯) 反馈机制是王者荣耀的核心武器,击杀野怪获得金币,不断地努力,获得奖励是我们不断的玩这个游戏的主要原因,也是人的本能,我什么都得不到凭什么这么做&…

淮安 做网站 app网站编辑做啥都

集合类型 (Set) 是一个无序并唯一的键值集合。 之所以说集合类型是一个无序集合,是因为它的存储顺序不会按照插入的先后顺序进行存储,如下代码所示: 127.0.0.1:6379> sadd myset v2 v1 v3 #插入数据 v2、v1、v3 (integer) 3 127.0.0.1:6379> smembers myset #查询数…

网站版式有哪几种摘抄一则新闻

Character类除了封装了一个char外,还封装了Unicode字符级别的各种操作,是Java文本处理的基础。下面结合源码分析Character的贡献。 Unicode 也许你没听过Unicode,但应该见过UTF-8。UTF-8(8-bit Unicode Transformation Format&a…

音乐外链网站泰安新浪乐居房产网

1、首先为什么需要握手 首先我们看一下TCP报文段的结构 TCP报文段中的窗口这16位字段部分,这里窗口的作用就是为了实现流量的控制,为什么会有流量的控制的引入???它是这样来的:若是发送方发送数据的速度大于…