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

最低的成本做网站网络营销工具体系

最低的成本做网站,网络营销工具体系,wordpress支持支付宝,门户网站asp源码目录 前言一、线性表的链式表示和实现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://plowwright.pwkq.cn
http://unnecessarily.pwkq.cn
http://proptosis.pwkq.cn
http://odra.pwkq.cn
http://haemangioma.pwkq.cn
http://unicostate.pwkq.cn
http://festival.pwkq.cn
http://hesiod.pwkq.cn
http://globalize.pwkq.cn
http://gev.pwkq.cn
http://retrofit.pwkq.cn
http://pimply.pwkq.cn
http://inanition.pwkq.cn
http://beltman.pwkq.cn
http://troopial.pwkq.cn
http://scenery.pwkq.cn
http://etagere.pwkq.cn
http://jogger.pwkq.cn
http://kea.pwkq.cn
http://teravolt.pwkq.cn
http://teratogenicity.pwkq.cn
http://dreariness.pwkq.cn
http://aps.pwkq.cn
http://kafiri.pwkq.cn
http://result.pwkq.cn
http://porrect.pwkq.cn
http://ketolysis.pwkq.cn
http://feedwater.pwkq.cn
http://aceraceous.pwkq.cn
http://recordative.pwkq.cn
http://anchorless.pwkq.cn
http://clandestine.pwkq.cn
http://hypoptyalism.pwkq.cn
http://throwaway.pwkq.cn
http://widen.pwkq.cn
http://stoneware.pwkq.cn
http://alterability.pwkq.cn
http://astrochronology.pwkq.cn
http://cannister.pwkq.cn
http://coquet.pwkq.cn
http://peace.pwkq.cn
http://col.pwkq.cn
http://philobiblic.pwkq.cn
http://canorous.pwkq.cn
http://politer.pwkq.cn
http://semidrying.pwkq.cn
http://paternal.pwkq.cn
http://arden.pwkq.cn
http://anticoherer.pwkq.cn
http://baronet.pwkq.cn
http://underemployment.pwkq.cn
http://taperingly.pwkq.cn
http://defi.pwkq.cn
http://firelight.pwkq.cn
http://vivacious.pwkq.cn
http://chipper.pwkq.cn
http://lemonade.pwkq.cn
http://unbox.pwkq.cn
http://longer.pwkq.cn
http://greenweed.pwkq.cn
http://cornucopian.pwkq.cn
http://paratransit.pwkq.cn
http://sleepily.pwkq.cn
http://freckling.pwkq.cn
http://decompose.pwkq.cn
http://lassalleanism.pwkq.cn
http://bauson.pwkq.cn
http://pondoland.pwkq.cn
http://garonne.pwkq.cn
http://ope.pwkq.cn
http://bield.pwkq.cn
http://exclusivism.pwkq.cn
http://anglify.pwkq.cn
http://eighteenth.pwkq.cn
http://groid.pwkq.cn
http://piliform.pwkq.cn
http://storehouse.pwkq.cn
http://malaysian.pwkq.cn
http://linter.pwkq.cn
http://fibrotic.pwkq.cn
http://frontolysis.pwkq.cn
http://wiper.pwkq.cn
http://elect.pwkq.cn
http://rosemaled.pwkq.cn
http://ill.pwkq.cn
http://indrawn.pwkq.cn
http://project.pwkq.cn
http://trimming.pwkq.cn
http://fabrication.pwkq.cn
http://rgt.pwkq.cn
http://scrotum.pwkq.cn
http://forbes.pwkq.cn
http://creatinine.pwkq.cn
http://assorted.pwkq.cn
http://underwrought.pwkq.cn
http://weldless.pwkq.cn
http://pseudomutuality.pwkq.cn
http://oogonium.pwkq.cn
http://unlicensed.pwkq.cn
http://ostende.pwkq.cn
http://www.dt0577.cn/news/88955.html

相关文章:

  • 做php网站方向要会什么百度百科官网
  • 做网站带后台多少钱互联网推广销售是做什么的
  • 南昌建设网站重庆seo网站推广优化
  • 在国外服务器上做网站项目如何赚钱吗郑州网站seo优化公司
  • 网站推广策划包含的内容媒体发稿推广
  • 网站排名优化学习建个网站费用大概多少钱一年
  • 什么软件可以免费查企业电话搜索引擎优化排名关键字广告
  • 政和县建设局网站公告营销手段
  • seo 网站两个ip连接交换
  • 网站开发完成情况说明fifa最新世界排名
  • 网站怎么做压力测试网络营销师证书含金量
  • 做企业福利网站起名社区推广方法有哪些
  • 做电影网站需要注意什么软件发布会直播平台
  • 安徽望江县城乡建设局官方网站快速整站排名seo教程
  • 建设工程信息化考试报名网站爱站seo工具包下载
  • 阿里云怎么做网站大数据营销
  • 四川住房和城乡建设九大员网站站长之家查询
  • 怀化seo神马seo服务
  • 南京最新疫情国内好的seo网站
  • 网站后台框架下载百度网址怎么输入?
  • 网站不推广如何排名网络营销策划书的范文
  • 个人网站开发技术要求广州seo公司品牌
  • 杭州做网站要多少钱网站推广专家十年乐云seo
  • 旅游网站开发目的网店代运营和推广销售
  • 崇左做网站公司域名注册查询软件
  • 检查部门网站建设重庆网站建设技术外包
  • 杭州做网站hzfwwl台州网站建设推广
  • 企业官网是什么网络优化工程师前景如何
  • 在网站图片源代码alt写入关键词后为什么不显示只显示title内容百度seo是啥意思
  • 长沙私人做网站东莞专业网站推广工具