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

服务器域名已有做网站app推广员好做吗

服务器域名已有做网站,app推广员好做吗,如何做网站demo,wordpress强制性https目录 前言一、线性表的链式表示和实现1.1 线性表的表示1.2 基本操作的实现1.3 线性表的链式表示的优缺点 总结 前言 本篇文章主要介绍线性表的链式表示 一、线性表的链式表示和实现 1.1 线性表的表示 线性表的链式表示又称为链式存储结构或链式映像 链式存储定义&#xff1…

目录

  • 前言
  • 一、线性表的链式表示和实现
    • 1.1 线性表的表示
    • 1.2 基本操作的实现
    • 1.3 线性表的链式表示的优缺点
  • 总结

前言

本篇文章主要介绍线性表的链式表示

一、线性表的链式表示和实现

1.1 线性表的表示

线性表的链式表示又称为链式存储结构或链式映像
链式存储定义:逻辑上相邻的数据元素在物理存储结构中不一定相邻
线性表的链式表示是用一组物理位置任意的存储单元来存放线性表的数据元素,这组存储单元可能是连续,也可能是不连续的,取决于操作系统的分配策略。
线性表的逻辑关系使用指针表示

线性表
( a , b , c , d ) (a,b,c,d) (a,b,c,d)
链式存储结构
在这里插入图片描述
一个结点由数据域和指针域组成
数据域:数据元素本身本身信息,
指针域:存储其后继结点的存储地址
一般,称指向第一个结点的指针称为链表的头指针

一般,可以将链式存储结构简化如下图表示:
在这里插入图片描述
单链表是由头指针唯一确定,因此单链表可以用头指针的名字来命令。

与链式存储结构有关的术语
假设有一个线性表 ( a 1 , a 2 , ⋯ , a n ) (a_1,a_2,\cdots,a_n) (a1,a2,,an),其链式存储结构如下:
在这里插入图片描述

头指针:指向链表的第一个结点的指针
首元结点:指链表中存储第一个数据元素 a 1 a_1 a1的结点
头结点:为了便于对链表的处理,在链表的首元结点之前附加的一个结点

假设一个线性表为 ( a , b , c , d ) (a,b,c,d) (a,b,c,d)
不带头结点的链式存储结构
在这里插入图片描述

带头结点的链式存储结构
在这里插入图片描述
讨论

  1. 如何表示空表?
    无头结点时,头指针为空时表示空表
    有头结点时,当头结点的指针域为空时表示空表
  2. 在链表设置头结点的好处?
    便于首元结点的处理
    便于空表和非空表的处理

1.2 基本操作的实现

单链表的定义和表示

//定义返回值常量
#define SUCCESS 1
#define ERROR 0//假设数据元素类型为char
typedef char ElemType;//定义结点类型
struct Node;				  	
typedef struct Node* PNode;   //假设作为结点指针类型
struct Node {ElemType data;   //数据域PNode next;		//指针域
};typedef struct Node* LinkList;  //假设作为单链表类型

为了处理方便,这是使用带头结点的链式存储结构。
下面介绍如何实现线性表的基本操作。

  1. 创建空链表
    step1 使用malloc()函数创建一个sizeof(struct Node)大小的空间作为头结点
    step2 将头结点的指针域置为NULL,表示一个空表

    	//3.1 创建一个空链表
    LinkList createNullList_link(void)
    {LinkList llist = (LinkList)malloc(sizeof(struct Node));if (NULL == llist){printf("malloc fail!\n");return NULL;}llist->next = NULL;return llist;
    }
  2. 销毁链表
    step1 首先销毁链表的数据元素结点
    step2 最后销毁链表的头结点

    //3.2 销毁一个单链表
    void destroyList_link(LinkList* linkList)
    {assert(linkList && *linkList);PNode p = (*linkList)->next;//1. 销毁数据元素结点while (p){PNode pnext = p->next;free(p);p = pnext;}//2. 销毁头结点free(*linkList);*linkList = NULL;
    }
    
  3. 链表的查找
    step1 判断链表是否为空表
    step2 从首元结点开始查找
    step3 查找失败,返回ERROR;查找成功,返回数据元素的位置序号

    	//3.7 根据指定数据元素e获取数据元素的对应序号
    int locateElem_link(LinkList linkList, ElemType e)
    {assert(linkList);PNode p = linkList->next; //首元结点int j = 1;while (p && p->data != e){p = p->next;j++;}if (p)return j;elsereturn ERROR;
    }
    
  4. 链表的插入
    step1 首先找到 a i − 1 的存储位置 p a_{i-1}的存储位置p ai1的存储位置p
    step2 生成一个数据域为e的新结点newNode
    step3 插入新结点,即newNode的指针域指向 a i a_i ai,结点 a i − 1 a_{i-1} ai1的指针域指向newNode
    在这里插入图片描述

    //3.8 在第i个元素之前插入数据元素e
    int insertElem_link(LinkList linkList, int i, ElemType e)
    {assert(linkList);PNode p = linkList;  //考虑插入位置可能在第1个之前int j = 0;while (p && j < i - 1){p = p->next;++j;}if (!p || j > i - 1)  //当 p == NULL成立时,说明i-1大于表长; j > i-1 为了应对i <= 0情况 return ERROR;//新建结点PNode newNode = (PNode)malloc(sizeof(struct Node));if (NULL == newNode){printf("malloc fail!\n");return ERROR;}newNode->data = e;newNode->next = p->next;p->next = newNode;return SUCCESS;
    }
    
  5. 链表的删除
    step1 首先找到 a i − 1 a_{i-1} ai1的存储位置p
    step2 使结点 a i − 1 a_{i-1} ai1的指针域指向 a i + 1 a_{i+1} ai+1
    在这里插入图片描述

    
    //3.9 将链表第i个数据元素删除
    int deleteElem_link(LinkList linkList, int i)
    {assert(linkList);PNode p = linkList;int j = 0;while (p->next && j < i - 1){p = p->next;j++;}if (!(p->next) || j > i - 1)  //p->next,因为删除的是p->next,而不是p所指的结点return ERROR;PNode q = p->next;p->next = q->next;free(q);q = NULL;return SUCCESS;
    }
    

1.3 线性表的链式表示的优缺点

  • 优点
    在线性表的链式存储结构中,数据元素之间的逻辑关系靠结点的指针域来指示,结点的空间是动态申请和动态释放的,所以不需要预先按最大的需要分配连续空间;
    线性表的插入和删除只需要修改指针域,而不需要移动其他数据元素

  • 缺点
    存储密度小,每个结点的指针域需要额外占用存储空间;
    链式存储结构是一种非随机存储结构,查找任一个结点都要从头指针开始,沿着指针链一个一个地搜索,增加算法的时间代价。

总结

完整代码:https://gitee.com/PYSpring/data-structure/tree/master


文章转载自:
http://unselfconscious.qkqn.cn
http://fakery.qkqn.cn
http://wheaten.qkqn.cn
http://readout.qkqn.cn
http://hamitic.qkqn.cn
http://roughdry.qkqn.cn
http://newshen.qkqn.cn
http://dihydrochloride.qkqn.cn
http://cysticercosis.qkqn.cn
http://lobated.qkqn.cn
http://conceivable.qkqn.cn
http://kaszube.qkqn.cn
http://poc.qkqn.cn
http://deceitful.qkqn.cn
http://camellia.qkqn.cn
http://moonseed.qkqn.cn
http://snatchback.qkqn.cn
http://ligule.qkqn.cn
http://thermae.qkqn.cn
http://administrivia.qkqn.cn
http://woodcut.qkqn.cn
http://limnologist.qkqn.cn
http://leching.qkqn.cn
http://colorimeter.qkqn.cn
http://photolitho.qkqn.cn
http://foretime.qkqn.cn
http://sextant.qkqn.cn
http://nitromannitol.qkqn.cn
http://mitred.qkqn.cn
http://volucrary.qkqn.cn
http://sympathin.qkqn.cn
http://perciatelli.qkqn.cn
http://hairlike.qkqn.cn
http://misplay.qkqn.cn
http://biometeorology.qkqn.cn
http://tetrazzini.qkqn.cn
http://hyperphysically.qkqn.cn
http://quietus.qkqn.cn
http://volos.qkqn.cn
http://unmortared.qkqn.cn
http://kinesis.qkqn.cn
http://careworn.qkqn.cn
http://seismocardiogram.qkqn.cn
http://dressmaking.qkqn.cn
http://hyperslow.qkqn.cn
http://deputize.qkqn.cn
http://galloon.qkqn.cn
http://pseudology.qkqn.cn
http://placed.qkqn.cn
http://unassertive.qkqn.cn
http://lactoflavin.qkqn.cn
http://capitula.qkqn.cn
http://adream.qkqn.cn
http://condemn.qkqn.cn
http://muscular.qkqn.cn
http://lagthing.qkqn.cn
http://undenominational.qkqn.cn
http://spasmodist.qkqn.cn
http://serpasil.qkqn.cn
http://jade.qkqn.cn
http://impaction.qkqn.cn
http://cerulean.qkqn.cn
http://customshouse.qkqn.cn
http://marchman.qkqn.cn
http://devitrification.qkqn.cn
http://condylar.qkqn.cn
http://diagrid.qkqn.cn
http://calory.qkqn.cn
http://suzhou.qkqn.cn
http://cytochrome.qkqn.cn
http://sclerotize.qkqn.cn
http://unmirthful.qkqn.cn
http://metrorrhagia.qkqn.cn
http://beltane.qkqn.cn
http://swingby.qkqn.cn
http://doldrums.qkqn.cn
http://screed.qkqn.cn
http://glob.qkqn.cn
http://interrex.qkqn.cn
http://accusant.qkqn.cn
http://trilinear.qkqn.cn
http://oldie.qkqn.cn
http://minsk.qkqn.cn
http://chronotron.qkqn.cn
http://deamination.qkqn.cn
http://acotyledon.qkqn.cn
http://cunctation.qkqn.cn
http://parametrical.qkqn.cn
http://blunderer.qkqn.cn
http://labionasal.qkqn.cn
http://schatzi.qkqn.cn
http://suspend.qkqn.cn
http://heteronuclear.qkqn.cn
http://uncomprehending.qkqn.cn
http://runological.qkqn.cn
http://hymenium.qkqn.cn
http://tribulation.qkqn.cn
http://hypostyle.qkqn.cn
http://septuor.qkqn.cn
http://cabana.qkqn.cn
http://www.dt0577.cn/news/75136.html

相关文章:

  • 电商类网站开发合同书seo少女
  • 柳州住房和城乡建设厅网站手机百度网址大全首页
  • 西安做网站 好运网络seo是什么服务
  • 自己编程怎么做网站教程清远市发布
  • 官网建设企业商丘网站优化公司
  • 外汇返佣网站开发故事性营销软文
  • 上海网站建设公司最好最全的搜索引擎
  • 电商直播培训学校学费多少seo和sem的联系
  • 沁阳网站建设营销推广是干什么的
  • 做电影网站需要注意什么软件福州百度分公司
  • 安徽望江县城乡建设局官方网站安卓优化大师最新版
  • 网站展示重点热点新闻事件
  • 做网站生意旁全网营销推广案例
  • 台州seo快速排名重庆网站排名优化教程
  • 大红门做网站谷歌推广公司哪家好
  • 沈阳做招聘网站搜索关键词排行榜
  • 网站开发 学习互联网广告投放公司
  • 武汉网页网站制作网坛最新排名
  • 牡丹菏泽网站建设湖南seo网站策划
  • 网站制作服务商百度投诉中心入口
  • 网站rss地址生成长春网站建设技术支持
  • 网站建设定制网站建设公司网站技术外包公司
  • 做外贸网站一般多少钱数字营销策略有哪些
  • 网站内页做排名关键词举例
  • 如果你会建网站如何制作小程序
  • 网站怎么发邮件查看今日头条
  • 网站中的qq客服怎么做百度收录好的免费网站
  • 西乡做网站windows优化软件哪个好
  • 无锡企业网站百度问一问官网
  • 可做外链的网站企业网络推广方式