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

建设摩托车官网官方网站自媒体平台注册账号

建设摩托车官网官方网站,自媒体平台注册账号,外贸公司是干什么的,村级网站建设 不断增强本文是我编写的针对计算机专业考研复习《数据结构》所用资料内容选刊。主要目的在于向复习这门课程的同学说明,此类问题不仅仅使用顺序表,也可以使用链表。并且,在复习中,两种数据结构都要掌握。 若线性表中的数据元素相互之间可以…

本文是我编写的针对计算机专业考研复习《数据结构》所用资料内容选刊。主要目的在于向复习这门课程的同学说明,此类问题不仅仅使用顺序表,也可以使用链表。并且,在复习中,两种数据结构都要掌握。

若线性表中的数据元素相互之间可以比较,并且数据元素在线性表中依值非递减或非递增有序排列,则称该线性表为有序表(Ordered List)。有序表可以使用顺序表或链表存储。

例 3.10.2 向非递减的有序表中插入一个元素。已知有序表 L 和元素 e ,将 e 插入到 L 中,并且 L 依然是有序表。

【解】

(1)用顺序表存储有序表

【算法步骤】

  1. 从表头开始遍历有序表 L,比较位置 i i i 的数据元素与 e 的大小,若大于 e 则找到插入位置 i i i
  2. 将位置 i i i 及后面的元素后移一个位置,将元素 e 插入在位置 i i i

可以将以上步骤理解为顺序表中“查找元素”和“插入元素”两种算法的合并,只不过此处查找的是顺序表中元素第一个大于 e 的位置。

【算法描述】

这里的算法描述采用类 C 的伪代码。

  • 描述 1:在已经学过的算法基础上修改
//顺序表存储结构
typedef struct{ElemType *elem;    //存储空间的基地址int length;        //当前长度
}SqList;               //顺序表的结构类型为 SqList//查找顺序表 L 中大于元素 e 的位置
int LocateElem(SqList L, ElemType e){//在顺序表 L 中查找第一个值大于 e 的数据元素,并返回其序号for (i = 0; i < L.length; i++){if (L.elem[i] > e)  //修改原查找算法中的 (L.elem[i] == e)return i+1;  //查找成功,返回序号 i+1}return 0;  //查找失败,返回 0
}//在顺序表中插入元素 e(024节)
Status ListInsert(SqList &L, int i, ElemType e){//在顺序表 L 中第 i 个位置之前插入新元素 e,//i 值的合法范围是 1≤i≤L.length+1if ((i < 1) || (i > L.length+1))return ERROR;  //i 值不合法if (L.length == MAXSIZE)return ERROR;  //当前存储空间已满for (j = L.length-1; j >= i-1; j--)L.elem[j+1] = L.elem[j];  //插入位置及之后的元素后移L.elem[i-1] = e;  //将新元素 e 放入第 i 个位置++L.length;  //表长加 1return OK;
}
  • 描述 2:编写新的插入算法
//顺序表存储结构
typedef struct{ElemType *elem;    //存储空间的基地址int length;        //当前长度
}SqList;               //顺序表的结构类型为 SqListStatus ListInsert(SqList &L, ElemType){int i = 0, j;while(i < L.length && L.elem[i] < e)i++;  //找到第一个大于 e 的位置,i 是索引,不是位序号//将 elem[i] 及后面的元素后移一个位置for(j = L.lenght; j > i; j--) L.elem[j] = L.elem[j-1];L.elem[i] = e;  //在索引 i 处放置 eL.length++;
}

【算法分析】

时间复杂度: O ( n ) O(n) O(n)

(2)用单链表存储有序表

在单链表中,插入元素不需要移动结点,只需要修改指针。故只需要找到第一个大于 e 的位置即可,然后通过修改指针的指向,实现本题所要求的算法。

但是,要注意,找到的应该是第一个大于 e 的结点的前驱,将 e 插入到该位置之后,这样才便于修改单链表的指针。

//单链表存储结构
typedef struct LNode{ElemType data;  //结点的数据域struct LNode * next; //结点的指针域
}LNode, *LinkList;  //LinkList 为指向结构体 LNode 的指针类型//在有序单链表中插入元素 e
void ListInsert(LinkList &L, ElemType e){LNode *pre = L;//查找第一个大于 e 的结点的前驱while(pre->next != NULL && pre->next->data < e)pre = pre->next;  //向下移动指针s = new LNode;  //生成新结点 *ss->data = e;  //将结点 *s 插入到 *pre 之后s->next = pre->next;  pre->next = s;
}

【算法分析】

时间花费在移动指针,查找到插入位置。

时间复杂度: O ( n ) O(n) O(n)

特别注意:在复习中,务必要亲自动手写代码。每年到邻近考试的时候,都听说有同学背诵代码,这其实不可取。


文章转载自:

http://dIJRNXIZ.qygfb.cn
http://QQkMCLQ9.qygfb.cn
http://pjYAc71N.qygfb.cn
http://s91eyHIS.qygfb.cn
http://UA0dInIT.qygfb.cn
http://yHw5KNDi.qygfb.cn
http://w9BXESHE.qygfb.cn
http://hVx21isH.qygfb.cn
http://KO8S2Oaf.qygfb.cn
http://GLvucUwO.qygfb.cn
http://U4QAYrES.qygfb.cn
http://984SEdsz.qygfb.cn
http://HERNVTpZ.qygfb.cn
http://5FwSKR61.qygfb.cn
http://B7DYyu9p.qygfb.cn
http://80Ct16tz.qygfb.cn
http://8iJfjXWK.qygfb.cn
http://DuqzEvYF.qygfb.cn
http://wMmFY2Pk.qygfb.cn
http://MW09V35N.qygfb.cn
http://Lt22sIQL.qygfb.cn
http://dcLWO552.qygfb.cn
http://amjNM1EE.qygfb.cn
http://5J2pxEwP.qygfb.cn
http://nzwfE56l.qygfb.cn
http://SZZbBxsV.qygfb.cn
http://D4mt6kb9.qygfb.cn
http://pEBxhKj0.qygfb.cn
http://PIggDlks.qygfb.cn
http://fRiKtDl2.qygfb.cn
http://www.dtcms.com/wzjs/684489.html

相关文章:

  • 做网站多少钱 佛山手机端做网站软件
  • 网站制作那家便宜分类网站建设
  • 上海企业建站方案能加速浏览器的加速器
  • 网站实时显示织梦网站首页是哪个文件
  • 工 投标做哪个网站好那些网站可以做0首付分期手机
  • 云服务器里面做网站播放器专业网站建设人工智能
  • 上海设计网站开发免费刷粉网站推广
  • 电子商务网站的网站架构如何进行域名备案
  • 快速做网站关键词排名西安网站建设高端
  • 个人可以做网站么网站是什么时候开始的
  • 网站免费广告网站设置英文怎么说
  • 网站地图广州 网站建设网络推广网页设计
  • 网站建设完工报告网站开发与规划就业前景
  • 织梦的网站数据还原怎么做湛江有那些网站制作公司
  • 网站特效 素材一般网站后台都是哪里做
  • 大理建设投资有限公司网站重庆市工程建设标准化网站
  • 什么软件可以自主建设网站网页设计代码大全html
  • 网站电脑端和手机端开发公司都有什么部门
  • 粉丝帮女流做的网站零基础学习网站开发
  • 嘉兴手机端建站模板室内设计者联盟
  • 大莲网站建设公司乌当区城乡建设局网站
  • 青岛苍南网站建设网站菜单实现原理
  • 自然志wordpress下载上海优化排名推广
  • 南通网站流量优化网站制作开发 杭州
  • 大岭山镇网站建设长沙网站seo推广
  • 成都网站运营网页加速器
  • 北京市新闻如何优化啊里网站排名
  • 广东集团网站建设做网站的就业前景
  • 兴安盟建设局网站百度云登录
  • 有人做彩票网站吗wordpress投票插件wp-polls