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

大学做网站是什么专业百度网讯科技有限公司官网

大学做网站是什么专业,百度网讯科技有限公司官网,百万级别wordpress,用手机什么软件做网站顺序表的插入、删除 顺序表——线性表的顺序表示 顺序表的定义 #define MAX_SIZE 50 //定义线性表的长度 typedef int ElemType; //借用王道的重命名 typedef struct {ElemType data[MAX_SIZE]; //顺序表的元素 > 数组表示int length; // 顺序表当前的长度 }SqList; …

顺序表的插入、删除

顺序表——线性表的顺序表示

顺序表的定义

#define MAX_SIZE	50	//定义线性表的长度
typedef int ElemType;	//借用王道的重命名
typedef struct {ElemType data[MAX_SIZE];	//顺序表的元素 => 数组表示int length;					// 顺序表当前的长度
}SqList;			//顺序表的类型定义

可视化显示一个顺序表
SqList

优缺点

优点
  • 可以随机存取(根据表头元素地址和元素序号)表中的任意一个元素。
  • 存储密度高,每个节点只存储数据元素。
缺点
  • 插入和删除操作需要移动大量元素.
  • 线性表变化较大时,难以确定存储空间的容量.
  • 存储分配需要一段连续的存储空间,不够灵活.占用一大段连续的内存,产生大量的碎片

顺序表的插入

顺序表的插入方式采用遍历插入的方法

比如i = 2向上面的例子中插入:
SqList1

开始移动,第一次将顺序表中的最后一个元素向后移动一位
3

直到i = 2位置的元素空出来
4

然后将需要插入的元素放到指定位置,最后L.length ++
在这里插入图片描述

/**
* 顺序表的插入操作,返回布尔类型
* SqList &L   			顺序表,需要改变L,使用引用
* int i		  			插入的位置,即下标+1,规定用法
* ElemType element		需要插入的元素
**/
bool insertSqList(SqList &L, int i, ElemType element)
{//判断i的合法性if(i < 1 || i > L.length || L.length == MAX_SIZE) return false;for(int j = L.length; j >= i; j --){L.data[j] = L.data[j - 1];	//将顺序表的元素从表尾到i依次向后移动一位}L.data[i - 1] = element;//将空出的位置放入elementL.length ++;	//当前长度+1;return true;
}

顺序表的删除操作

根据顺序表的插入元素,可以知道插入操作是将顺序表的元素从L.length 位置到i位置依次向后移动一位;

那么可以推想出删除的操作就是从需要删除的位置(i)到最后一个元素的位置(L.length)依次向前移动一个位置,通俗的讲就是用后面的元素把前面的元素给覆盖掉!
5

/**
* 顺序表的删除操作
* SqList &L   			顺序表,需要改变L,使用引用
* int i		  			插入的位置,即下标+1,规定用法
* ElemType &delElement		存储被删除的元素
**/
bool listDelete(SqList &L, int i, ElemType &delElement)
{//判断删除的位置i是否合法if(i < 1 || i > L.length)   return false;delElement = L.data[i - 1];	//存储被删除的元素for(int j = i; j <= L.length; j ++){L.data[j - 1] = L.data[j];//将顺序表中的元素从i到L.length依次向前移动一位}L.length --;return true;
}

演示例子

初始化顺序表(顺序表中元素为整型),里边的元素是1,2,3,然后通过scanf读取一个元素(假如插入的是6),插入到第2个位置,打印输出顺序表,每个元素占3个空格,格式为1 6 2 3,然后scanf读取一个整型数,是删除的位置(假如输入为1),然后输出顺序表 6 2 3,假如输入的位置不合法,输出false字符串。

#include <stdio.h>
#include <stdbool.h>#define MaxSize		50typedef int ElemType;	//类型定义typedef struct{ElemType data[MaxSize];int length;				//顺序表当前的长度
}SqList;					//顺序表的类型定义//顺序表的插入操作
bool insertList(SqList &L, int i, ElemType in_elem)
{if(i < 0 || i > L.length || L.length == MaxSize)	return false;for(int j = L.length; j >= i; j --){L.data[j] = L.data[j - 1];}L.data[i - 1] = in_elem;L.length ++;return true;
}//顺序表的删除操作
bool deleteList(SqList &L, int i)
{if(i < 0 || i > L.length)	return false;for(int j = i; j <= L.length; j ++){L.data[j - 1] = L.data[j];}L.length --;return true;
}void printSqList(bool ret, SqList L)
{if(ret){for(int i = 0; i < L.length; i++){printf("  %d", L.data[i]);}printf("\n");}else		printf("false\n");
}
int main()
{SqList L;ElemType in_elem;		//需要插入顺序表的元素int i;
// ElemType del_elem;	//删除顺序表中的元素的复制值bool ret;				//判断插入或删除操作的返回值L.data[0] = 1; L.data[1] = 2; L.data[2] = 3;L.length = 3;scanf("%d", &in_elem);		//键盘输入需要插入的元素scanf("%d", &i);ret = insertList(L, 2, in_elem);printSqList(ret, L);ret = deleteList(L, i);printSqList(ret, L);return 0;
}
http://www.dtcms.com/wzjs/362644.html

相关文章:

  • 广东网站建设公司排名长沙百度网站排名优化
  • 自贡做网站的公司百度识图网页版 在线
  • 怎么创建游戏软件seo门户网站建设方案
  • 浙江网站搭建百度框架户开户渠道
  • 手机怎么样做网站站长之家新网址
  • 政府找网站开发商要求王通seo
  • 樟木头网站仿做简述网站建设的基本流程
  • 做定制型网站电子商务网站推广策略
  • 网站开发论文答辩问题近期国际新闻20条
  • 营销型企业网站建设的基本原则是seo发帖网站
  • 虹口专业做网站百度app客服人工电话
  • 中英文网站英文任务放单平台
  • 如何进行网站网站调试站长是什么级别
  • 宝鸡营销型网站建设win7优化大师免安装版
  • 做设计都有什么网站推广代理平台登录
  • 仙居县建设规划局网站社交媒体营销案例
  • 网站的seo优化怎么做一键seo提交收录
  • wordpress设置主题404模板宁波seo推广如何收费
  • 网站建设商业计划书线上推广是什么意思
  • 第一ppt模板免费下载网站关键词推广软件
  • 巴青网站制作百度销售
  • 陕西网站建设哪家强百度识图软件
  • 怎么做视频解析的网站百度云登录首页
  • 电商网站建设最好的公司阿森纳英超积分
  • 建筑工程招投标网站长沙网站优化推广
  • 国家高新技术企业认定机构崇左seo
  • 外包加工网真的假的网站关键词排名优化系统
  • 网站产品类别顺序如果修改淘宝优化标题都是用什么软件
  • wordpress和帝国cms百度收录seo问答
  • 上海网站建设的报价郑州中原区最新消息