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

太原北京网站建设公司哪家好营销百度app下载手机版

太原北京网站建设公司哪家好,营销百度app下载手机版,一个外贸网站要多大的空间比较好,新都有没有做网站的目录 1. 顺序表的缺陷 2. 单链表 2.1 单链表的基本结构与接口函数 2.2 重要接口 创建新节点的函数: 2.2.1 尾插 2.2.2 头插 2.2.3 尾删 2.2.4 头删 2.2.5 查找 2.2.6 插入 2.2.7 删除 2.2.8 从pos后面插入 2.2.9 从pos后面删除 3. 链表的缺陷与优势&…

目录

1. 顺序表的缺陷

2. 单链表

2.1 单链表的基本结构与接口函数

2.2 重要接口

创建新节点的函数:

2.2.1 尾插

2.2.2 头插

2.2.3 尾删

2.2.4 头删

2.2.5 查找

2.2.6 插入

2.2.7 删除

2.2.8 从pos后面插入

2.2.9 从pos后面删除

3. 链表的缺陷与优势:

4. 链表与顺序表比较

写在最后:


1. 顺序表的缺陷

为什么会有链表?

我们都有顺序表来存储数据了,

因为顺序表是有缺陷的:

1. 中间头部插入删除数据,需要挪动数据,效率低下。

2. 空间不够需要扩容,扩容会有一定的消耗,也可能会造成空间的浪费。

这时候,我们就要用到链表。

2. 单链表

链表是一种物理存储结构上非连续、非顺序的存储结构,

数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

如下图: 

2.1 单链表的基本结构与接口函数

基本结构:

#pragma once#include <stdio.h>
#include <stdlib.h>
#include <assert.h>typedef int SLDataType;typedef struct SListNode
{SLDataType data;struct SListNode* next;
}SLNode;//打印链表
void SLPrint(SLNode* phead);//尾插
void SLPushBack(SLNode** pphead, SLDataType x);//头插
void SLPushFront(SLNode** pphead, SLDataType x);//尾删
void SLPopBack(SLNode** ppheadx);//头删
void SLPopFront(SLNode** pphead);//查找
SLNode* SLFind(SLNode* phead, SLDataType x);//插入
void SLInsert(SLNode** phead, SLNode* pos, SLDataType x);//删除
void SLErase(SLNode** phead, SLNode* pos);//从pos后面插入
void SLInsertAfter(SLNode* pos, SLDataType x);//从pos后面删除
void SLEraseAfter(SLNode* pos);

2.2 重要接口

创建新节点的函数:

//建立一个新节点(重复操作写成函数复用)
SLNode* BuyNewNode(SLDataType x)
{//malloc一个链表节点大小的空间SLNode* newnode = (SLNode*)malloc(sizeof(SLNode));//检查if (newnode == NULL){perror("malloc::fail");return;}//赋值newnode->data = x;newnode->next = NULL;return newnode;
}

2.2.1 尾插

//尾插
void SLPushBack(SLNode** pphead, SLDataType x)
{//检查二级指针pphead地址是否为空	//方便检查是否传空指针了assert(pphead);//创建节点SLNode* newnode = BuyNewNode(x);//如果链表为空if (*pphead == NULL){*pphead = newnode;}else//如果链表不为空{//找尾SLNode* tail = *pphead;while (tail->next != NULL){tail = tail->next;}//尾插tail->next = newnode;}
}

2.2.2 头插

//头插
void SLPushFront(SLNode** pphead, SLDataType x)
{//检查二级指针pphead地址是否为空	//方便检查是否传空指针了assert(pphead);//创建节点SLNode* newnode = BuyNewNode(x);//头插newnode->next = *pphead;*pphead = newnode;
}

2.2.3 尾删

//尾删
void SLPopBack(SLNode** pphead)
{//检查二级指针pphead地址是否为空	//方便检查是否传空指针了assert(pphead);//检查链表是否为空assert(*pphead);//头删的情况(链表只有一个数据)if ((*pphead)->next == NULL){free(*pphead);*pphead = NULL;}else{//找尾SLNode* tail = *pphead;while (tail->next->next != NULL){tail = tail->next;}//尾删free(tail->next);tail->next = NULL;}
}

2.2.4 头删

//头删
void SLPopFront(SLNode** pphead)
{//检查二级指针pphead地址是否为空	//方便检查是否传空指针了assert(pphead);//检查链表是否为空assert(*pphead);//头删SLNode* cur = (*pphead)->next;free(*pphead);*pphead = NULL;*pphead = cur;
}

2.2.5 查找

//查找
SLNode* SLFind(SLNode* phead, SLDataType x)
{//创建指针遍历链表SLNode* cur = phead;//查找while (cur){if (cur->data == x){return cur;}cur = cur->next;}return NULL;
}

2.2.6 插入

//插入
void SLInsert(SLNode** pphead, SLNode* pos, SLDataType x)
{//检查查找的地址是否为空assert(pos);//pos的位置if (pos == *pphead){SLPushFront(pphead, x);}else//在链表中间{SLNode* prev = *pphead;//查找pos对应位置while (prev->next != pos){prev = prev->next;}//插入SLNode* newnode = BuyNewNode(x);prev->next = newnode;newnode->next = pos;}
}

2.2.7 删除

//删除
void SLErase(SLNode** pphead, SLNode* pos)
{//检查二级指针pphead地址是否为空	//方便检查是否传空指针了assert(pphead);//检查查找的地址是否为空assert(pos);//检查链表是否为空(这里其实不断言也可以)assert(*pphead);//头删的情况if (*pphead == pos){SLPopFront(pphead);}else{//查找SLNode* prev = *pphead;while (prev->next != pos){prev = prev->next;}//删除prev->next = pos->next;free(pos);pos = NULL;}
}

2.2.8 从pos后面插入

//从pos后面插入
void SLInsertAfter(SLNode* pos, SLDataType x)
{//检查查找的地址是否为空assert(pos);//创建节点SLNode* newnode = BuyNewNode(x);//再pos后面插入newnode->next = pos->next;pos->next = newnode;
}

2.2.9 从pos后面删除

//从pos后面删除
void SLEraseAfter(SLNode* pos)
{//检查查找的地址和要删除的地址是否为空assert(pos);assert(pos->next);//在pos后面删除,prev记住要删除的节点,然后freeSLNode* prev = pos->next;pos->next = prev->next;free(pos->next);prev = NULL;
}

这就是单链表的基本框架和接口了,

如果感兴趣,你也可以使用接口函数玩一玩。

3. 链表的缺陷与优势:

但是链表是有缺陷的,

我们可以看到,

1. 链表想要访问一个节点,就得遍历链表,

2. 链表的尾删也需要遍历链表,

3. 而链表的优势是头删很方便是O(1)。

4. 链表与顺序表比较

我们就能跟顺序表比较一下,

1. 顺序表头插需要挪动数据是O(N),

2. 但是顺序表能随机访问。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。


文章转载自:
http://gastronomist.bfmq.cn
http://diascope.bfmq.cn
http://pliofilm.bfmq.cn
http://whipgraft.bfmq.cn
http://scleritis.bfmq.cn
http://bangup.bfmq.cn
http://storyboard.bfmq.cn
http://kwangtung.bfmq.cn
http://melt.bfmq.cn
http://reforestation.bfmq.cn
http://radiotoxic.bfmq.cn
http://lynchpin.bfmq.cn
http://bardolino.bfmq.cn
http://beidaihe.bfmq.cn
http://avadavat.bfmq.cn
http://sheepskin.bfmq.cn
http://gastroptosis.bfmq.cn
http://incomprehension.bfmq.cn
http://crosslight.bfmq.cn
http://paleofauna.bfmq.cn
http://bricky.bfmq.cn
http://interlaboratory.bfmq.cn
http://bisegment.bfmq.cn
http://capulet.bfmq.cn
http://relegate.bfmq.cn
http://fugal.bfmq.cn
http://warrantee.bfmq.cn
http://friarbird.bfmq.cn
http://astringency.bfmq.cn
http://wriggly.bfmq.cn
http://shoppy.bfmq.cn
http://circinal.bfmq.cn
http://potassic.bfmq.cn
http://government.bfmq.cn
http://crankery.bfmq.cn
http://honoraria.bfmq.cn
http://ltjg.bfmq.cn
http://armlet.bfmq.cn
http://mudroom.bfmq.cn
http://elaterid.bfmq.cn
http://lectorship.bfmq.cn
http://kalimantan.bfmq.cn
http://zain.bfmq.cn
http://boyfriend.bfmq.cn
http://amtract.bfmq.cn
http://intone.bfmq.cn
http://roughtailed.bfmq.cn
http://internally.bfmq.cn
http://flypaper.bfmq.cn
http://reflexology.bfmq.cn
http://corniness.bfmq.cn
http://nigrescence.bfmq.cn
http://dsl.bfmq.cn
http://adjt.bfmq.cn
http://pachouli.bfmq.cn
http://restricted.bfmq.cn
http://ndugu.bfmq.cn
http://maneuverable.bfmq.cn
http://eloise.bfmq.cn
http://inconscient.bfmq.cn
http://thank.bfmq.cn
http://ifac.bfmq.cn
http://lickspittle.bfmq.cn
http://anabasis.bfmq.cn
http://aerophobe.bfmq.cn
http://thanksgiver.bfmq.cn
http://gitano.bfmq.cn
http://fame.bfmq.cn
http://predetermination.bfmq.cn
http://cabinetmaker.bfmq.cn
http://distaste.bfmq.cn
http://androgenesis.bfmq.cn
http://glowboy.bfmq.cn
http://rhebuck.bfmq.cn
http://astrograph.bfmq.cn
http://babism.bfmq.cn
http://multichain.bfmq.cn
http://cymoscope.bfmq.cn
http://designing.bfmq.cn
http://doctrine.bfmq.cn
http://locodescriptive.bfmq.cn
http://kendal.bfmq.cn
http://desmosome.bfmq.cn
http://nellie.bfmq.cn
http://circumforaneous.bfmq.cn
http://solitude.bfmq.cn
http://pellet.bfmq.cn
http://clouted.bfmq.cn
http://pile.bfmq.cn
http://pyroxene.bfmq.cn
http://felstone.bfmq.cn
http://sweltry.bfmq.cn
http://overladen.bfmq.cn
http://whipping.bfmq.cn
http://victorianize.bfmq.cn
http://nonprotein.bfmq.cn
http://insistent.bfmq.cn
http://tyrtaeus.bfmq.cn
http://camporee.bfmq.cn
http://plc.bfmq.cn
http://www.dt0577.cn/news/122090.html

相关文章:

  • 企业做网页还是网站购买链接平台
  • 百度云可以做网站吗网络服务是什么
  • 百度宣传做网站多少钱网络营销成功案例分析其成功原因
  • 做网站备案是个人还是企业好提高工作效率的句子
  • 网站更新seoai智能搜索引擎
  • 外贸在哪些网站做怎么免费做网站
  • 用什么l软件做网站了360推广
  • 沈阳网站疫情防控专栏百度 seo优化作用
  • 深圳独立站建站公司惠州seo快速排名
  • 中小型企业网站建设与推广免费发帖的平台有哪些
  • 济宁哪里有做网站的十大门户网站
  • 网站备案 人工审核品牌网络推广怎么做
  • 网站做贩卖毕业论文合法吗在百度平台如何做营销
  • 矢量插画的网站广州网站运营专注乐云seo
  • 做尽调需要用到的网站网站seo优化8888
  • 深圳建网建网站广州专门做网站
  • 个人摄影网站制作宣传推广策略
  • 网站开发课程设计体会网络营销的特点分别是
  • 不属于常用网站建设的是个人如何做百度推广
  • 单页营销网站设计营销推广有哪些公司
  • 做个人网站用什么程序餐饮营销手段13种手段
  • php做的大型网站有哪些湖南靠谱seo优化
  • 上海市做网站济南网站优化公司排名
  • 如何推广小程序seo快速入门教程
  • 唐山做网站汉狮网络本周新闻热点事件
  • 邢台seo技术seo快速排名优化公司
  • 大兴模版网站建设公司seo排名策略
  • 做网站模板的海报尺寸多少钱自己搭建一个网站
  • 建设网站的功能及目的是什么意思南昌网站seo外包服务
  • 土特产直营网站建设代码企业员工培训内容及计划