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

企业网站设计服务公司网络营销的基本方法有哪些

企业网站设计服务公司,网络营销的基本方法有哪些,大学生做的网站,重庆小程序开发哪家好文章目录 1、单链表1.1 链表的创建1.2 链表的遍历1.3 链表的删除1.4 链表的插入1.5 链表和数组 2、双向链表2.1 双链表的创建2.2 双链表的删除2.3 双链表的插入2.4 双向循环链表2.5 双链表优缺点 1、单链表 链表是一种物理存储单元上非连续、非顺序的存储结构,插入…

文章目录

  • 1、单链表
    • 1.1 链表的创建
    • 1.2 链表的遍历
    • 1.3 链表的删除
    • 1.4 链表的插入
    • 1.5 链表和数组
  • 2、双向链表
    • 2.1 双链表的创建
    • 2.2 双链表的删除
    • 2.3 双链表的插入
    • 2.4 双向循环链表
    • 2.5 双链表优缺点

1、单链表

链表是一种物理存储单元上非连续、非顺序的存储结构,插入和删除速度快,并且不需要像数组一样预先开辟空间链表结构可以充分利用计算机内存空间,实现灵活地内存动态管理。

Pasted-image-2025040117473344f072a03e24e176.png

链表由一系列结点组成,每个结点包括两个部分:

  • 存储数据元素的数据域
  • 存储下一个结点地址的指针域

1.1 链表的创建

1.定义结构体存储结点信息

struct node {int data;  //存储当前结点的数据值node *next;  /存储下一个结点的地址
}

2.创建头尾节点

  • 使用 new 运算符来动态申请空间
  • 使用 -> 结构体指针运算符来访问内部成员
  • 头结点数据域通常不做存储(删除结点只能通过它前一个结点指向它后一个结点,头结点没有前一个结点)

*head.datahead->data 效果是一样的。

node *head, *tail;  //定义头结点和尾结点
head = new node;  //动态申请内存空间
head->next = NULL;  //指针域初始化为空
tail = head;  //此时的头结点也是尾结点

3.添加新结点

int x;
while(cin >> x) {  //会自动获取到输入内容的结束位置,再终止输入node *p = new node;  //定义新结点p,动态申请新的空间p->data = x;  //给数据域赋值p->next = NULL;  //指针域初始化为空tail->next = p;  //连到尾结点后面tail = p;  //尾结点更新为当前的p
}

1.2 链表的遍历

node *p = head;  //使用p作为当前结点,从头开始遍历
while(p->next != NULL) {  //判断下一个结点是否为空cout << p->next->data << " ";  //输出下一个结点的数据,因为头结点无数据p = p->next;  //p更新为下一个结点
} 

1.3 链表的删除

删除单链表中p结点的下一个结点

p->next = p->next->next;  //将p所指的下一个结点修改为下一个结点的下一个结点

PixPin_2025-04-01_18-13-0901a34a3c0f76eff8.gif

1.4 链表的插入

在p结点之后插入一个结点s

node *s = new node;  //动态申请新的空间
s->next = p->next;  //先将新结点的指针域指向p的下一个结点
p->next = s;  //再将p的下一个结点修改为s

PixPin_2025-04-01_18-13-398f2e7f5b50888dea.gif

1.5 链表和数组

数组:

  • 优点:
    随机访问性强,查找速度快。
  • 缺点:
    插入和删除效率低,,可能浪费内存,,内存空间要求高,数组大小固定,不能动态拓展。

链表:

  • 优点:
    插入删除速度快;内存利用率高,不会浪费内存;大小没有固定,拓展很灵活。
  • 缺点:
    不能随机查找,必须从第一个开始遍历,查找效率低。
查找插入删除
数组O(1)O(n)O(n)
链表O(n)O(1)O(1)

2、双向链表

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继直接前驱,所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点后继结点

Pasted-image-20250401183027dc7f17708b708341.png

双向链表每个节点有三个部分:

  • 存储数据元素的数据域
  • 存储上一个节点地址的指针域
  • 存储下一个结点地址的指针域

2.1 双链表的创建

1.定义结构体存储结点信息

struct node {int data;  //存储当前结点的数据值node *pre, *next;  /存储前驱和后继结点的地址
}

2.创建头尾节点

node *head, *tail;  //定义头结点和尾结点
head = new node;  //动态申请内存空间
head->pre = NULL;  //前驱指针初始化为空
head->next = NULL;  //后继指针初始化为空
tail = head;  //此时的头结点也是尾结点

3.添加新结点

int x;
while(cin >> x) {  //会自动获取到输入内容的结束位置,再终止输入node *p = new node;  //定义新结点p,动态申请新的空间p->data = x;  //给数据域赋值p->pre = tail;  //前驱指针指向前驱节点tailp->next = NULL;  //后继指针初始化为空tail->next = p;  //尾结点的后继指针指向ptail = p;  //尾结点更新为当前的p
}

2.2 双链表的删除

删除双链表中p结点

p->pre->next = p->next;  //将p上一个结点的后继指针指向p的下一个结点
p->next->pre = p->pre;  //将p下一个结点的前驱指针指向p的上一个结点

PixPin_2025-04-01_18-48-56578d0f7d9e7af118.gif

2.3 双链表的插入

在p结点之后插入一个结点s

node *s = new node;  //动态申请新的空间
s->next = p->next;  //新结点的后继指针域指向p的下一个结点
s->pre = p;  //新结点的前驱指针指向p
p->next->pre = s;  // p的下一个结点的前驱指针指向s
p->next = s;  //p的后继指针指向s

PixPin_2025-04-01_18-51-5051df3f5373f70761.gif

2.4 双向循环链表

双向循环链表:最后一个结点的后继指针指向头结点,且头结点的前驱指针指向最后一个结点。

head->pre = tail;
tail->next = head;

2.5 双链表优缺点

  • 优点:
    从双向链表中的任意一个结点开始,都可以很方便地访问前驱结点和后继结点
  • 缺点:
    增加删除节点复杂,需要多分配一个指针存储空间
http://www.dtcms.com/wzjs/11654.html

相关文章:

  • 网站seo策划方案关键词有哪些关联词
  • 郑州七彩网站建设公司 交通百度一下首页登录入口
  • 如何将网站做成app网络营销软件条件
  • 微信小程序报价单成品网站seo
  • 成都调整疫情风险区武汉网络优化知名乐云seo
  • 网站数据分析报告seo站长
  • 展厅设计与施工沧州网站优化
  • 湘潭县委网站长沙百度网站推广
  • 深圳做网站最好的公司利用搜索引擎营销成功的案例
  • 网站想要被收录要怎么做怎么做网上销售
  • 本地资讯网站做的最好的网站上做推广
  • 做传单的网站微博推广平台
  • 第一次做网站不知道中美关系最新消息
  • vue做网站看不到htmI吗网页模板免费html
  • 麻涌手机网站设计培训心得体会范文大全1000
  • c语言如何做网站二级网站怎么做
  • 新乡做网站推广的有什么功能
  • 百度网站大全旧版哈尔滨seo关键词优化
  • 网站设置了跳转被qq拦截seo站内优化和站外优化
  • 商务网站建设概念百度网页版链接
  • 天猫官方网站百度seo怎么操作
  • 网站seo优化有哪些方面官方百度app下载
  • 电子商务网站建设价格seo工资服务
  • 天津网站设计推荐刻网站怎么快速排名
  • 网站开发所需费用明细优化大师
  • 男人和女人晚上做污污的视频大网站企业网站的作用
  • 华大网站建设百度怎么投放广告
  • 物联网就业方向百度快照优化排名怎么做
  • 推广产品南京seo网站管理
  • 网站建设怎么自学广州品牌营销服务