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

台江网站建设/东莞seoseo关键词排名优化

台江网站建设,东莞seoseo关键词排名优化,网站快速优化排名软件,做资源教程网站线性表:唯一的头,唯一的尾,除了头结点,剩下其它节点都有前驱,除了尾结点,剩余其它节点都有后即 顺序表可分为定长顺序表和不定长顺序表。 顺序表的特点: 顺序表特点:(插入删除操作较少&#…

线性表:唯一的头,唯一的尾,除了头结点,剩下其它节点都有前驱,除了尾结点,剩余其它节点都有后即

顺序表可分为定长顺序表和不定长顺序表。

顺序表的特点:

顺序表特点:(插入删除操作较少,随机访问数组中值这个操作较多)
1.逻辑简单,实现简单
2.插入操作时间复杂度O(n),因为需要向前覆盖数据,但是尾插不需要挪动数据(尾删除时间复杂度O(1))
3.删除操作时间复杂度O(n),因为需要向前覆盖数据,但是尾删除不需要挪动数据(尾删时间复杂度O(1))
4.随机访问时间复杂度O(1),因为顺序表可以通过下标之间访问数组中的元素值

顺序表: 数据和数据之间,逻辑相邻,物理也相邻

定长顺序表

 由静态数组实现,功能主要包括数组的增删改查。

 结构体中有两个成员,一个静态数组保存数据,

一个整型数据保存当前数组的中数据的有效长度

//定长顺序表
typedef struct sqlist
{int arr[MAX_SIZE];  //存放有效数据int length;   //存放有效数据长度
}sqlsit, * Psqlist;

 按位置插入操作

 挪动数据 让值空出来,再将值放进去,

//按位置插入
bool Insert_pos(Psqlist p, int pos, int val)
{//判空assert(p != NULL);if (NULL == p){return false;}//判断插入位置 是否合法assert(pos > 0 && pos <= p->length);   //插入的时候pos ==p->length 合法//判满操作if (Is_Full(p))return false;   //没有扩容的定长顺序表  不需要执行扩容函数// 首先挪动数据 让值空出来,再将值val放进去即可//插入,挪动数据for (int i = p->length; i >= pos; i--){p->arr[i + 1] = p->arr[i];}//此时,挪动数据完成 标志着挪动数据完成 现在只需要 将插入的值val放进去p->arr[pos] = val;//修改lengthp->length++;return true;
}

 

 按位置删除操作:

 首先删除数据 让值空出来,将删除位置后面的有效值一次向前挪动一位,将删除位置覆盖掉即可

 

 

bool Del_pos(Psqlist p,int pos)
{//判空  判断定长顺序表是否存在assert(p != NULL);if (NULL == p){return false;}//判断删除位置 是否合法assert(pos > 0 && pos < p->length);    //判空操作if (Is_Empty(p))return false;// 首先删除数据 让值空出来,将删除位置后面的有效值一次向前挪动一位,将删除位置覆盖掉即可//删除,向前覆盖数据,离待删除位置最近的元素先挪动for (int i =pos+1; i <= p->length-1; i++){p->arr[i-1] = p->arr[i];}//此时,删除数据完成  标志着数据向前覆盖完成//修改lengthp->length--;return true;
}

 其它功能不一一列举,程序源码如下:

首先构建头文件sqlist.h,定义结构体以及函数声明

#define MAX_SIZE 100//定长顺序表
typedef struct sqlist
{int arr[MAX_SIZE];  //存放有效数据int length;   //存放有效数据长度
}sqlsit, * Psqlist;//增删改查//初始化
void Init_sqlist(Psqlist p);//按位置插入
bool Insert_pos(Psqlist p, int pos, int val);
//按位置删除
bool Del_pos(Psqlist p,int pos);//按值删除
bool Del_val(Psqlist p, int val);// 获取	其有效长度
bool Get_length(Psqlist p);
// 获取值所在下标 (如果数据重复,则返回第一次出现的位置)
int Search(Psqlist p, int val);
//判空
bool Is_Empty(Psqlist p);
//判满
bool Is_Full(Psqlist p);
//清空
void Clear(Psqlist p);
//销毁
void Destroy(Psqlist p);
//打印
void Show(Psqlist p);

其次在 sqlist.cpp文件中将函数功能一一实现

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include"sqlist.h"//初始化---将普通的成员变量初始化void Init_sqlist(Psqlist p) 
{assert(p != NULL);if (p == NULL){return;}//p->arr;   数组不需要赋值   因为里面值有没有效根据length来判断p->length = 0;
}//按位置插入
bool Insert_pos(Psqlist p, int pos, int val)
{//判空assert(p != NULL);if (NULL == p){return false;}//判断插入位置 是否合法assert(pos > 0 && pos <= p->length);   //插入的时候pos ==p->length 合法//判满操作if (Is_Full(p))return false;   //没有扩容的定长顺序表  不需要执行扩容函数// 首先挪动数据 让值空出来,再将值val放进去即可//插入,挪动数据for (int i = p->length; i >= pos; i--){p->arr[i + 1] = p->arr[i];}//此时,挪动数据完成 标志着挪动数据完成 现在只需要 将插入的值val放进去p->arr[pos] = val;//修改lengthp->length++;return true;
}
//按位置删除
bool Del_pos(Psqlist p,int pos)
{//判空  判断定长顺序表是否存在assert(p != NULL);if (NULL == p){return false;}//判断删除位置 是否合法assert(pos > 0 && pos < p->length);    //判空操作if (Is_Empty(p))return false;// 首先删除数据 让值空出来,将删除位置后面的有效值一次向前挪动一位,将删除位置覆盖掉即可//删除,向前覆盖数据,离待删除位置最近的元素先挪动for (int i =pos+1; i <= p->length-1; i++){p->arr[i-1] = p->arr[i];}//此时,删除数据完成  标志着数据向前覆盖完成//修改lengthp->length--;return true;
}//按值删除
bool Del_val(Psqlist p, int val)
{//assertint index = Search(p, val);if (index == -1)return false;return Del_pos(p, index);
}// 获取	其有效长度
bool Get_length(Psqlist p)
{return p->length;
}
//扩容 定长顺序表不需要实现// 获取值所在下标 (如果数据重复,则返回第一次出现的位置)
int Search(Psqlist p, int val)
{//判空assert(p!=NULL);for (int i = 0; i < p->length; i++){if (p->arr[i] == val){return i;}}return -1;
}
//判空
bool Is_Empty(Psqlist p)
{return p->length == 0;
}
//判满
bool Is_Full(Psqlist p)
{return MAX_SIZE == p->length;
}
//清空
void Clear(Psqlist p)
{//assertp->length = 0;
} 
//销毁     释放动态内存 ,防止内存泄漏
void Destroy(Psqlist p)
{//assertClear(p);//定长顺序表不用  存放数据使用的是静态顺序表  系统开辟系统释放
}
//打印
void Show(Psqlist p)
{//assertfor (int i = 0; i < p->length; i++){printf("%d ", p->arr[i]);}printf("\n");
}

http://www.jmfq.cn/news/5101093.html

相关文章:

  • 外贸有限公司英文网站/seo关键词优化的技巧
  • 做卡贴质量好的网站/颜色广告
  • 中英文网站是咋做的/关键词优化公司排名
  • 重生北京上大学开网吧做网站的小说/杭州优化seo公司
  • 做网站banner分辨率设置多大/最新疫情爆发
  • 俄语在线网站制作/怎么联系百度客服人工服务
  • 淘宝客网站免费做/seo sem优化
  • 网站飘窗怎么做/重庆百度推广的代理商
  • 小鸡a做爰片免费网站/收录提交入口
  • 网络团队建设/seo网站建设优化什么意思
  • 政府型网站规划建设/wordpress seo教程
  • 网站建设php培训/百度热门关键词
  • 淘客网站建设/北京新闻最新消息
  • 服装网站建设配色/抖音排名优化
  • 网站文章好几天不收录/什么软件可以推广自己的产品
  • 百度做网站推广多少钱/友情链接交换平台源码
  • 宁波建网站哪家/安新seo优化排名网站
  • 丰台区社会建设工作办公室网站/百度一下首页下载安装桌面
  • wordpress商城必备软件/专业seo关键词优化
  • 美女做暖暖暖视频网站/上往建站
  • 上海门户网站论坛/aso推广方案
  • 辽宁省住房和城乡建设部网站主页/好省推广100种方法
  • 高端做网站/推广网站源码
  • 柳州网站网站建设/seo优化排名易下拉用法
  • 做靠谱的网络兼职网站/网络营销推广的5种方法
  • 赚钱平台网站/抖音推广公司
  • 专业品牌设计网站建设/站长工具免费
  • 互动网站建设公司/百度seo关键词优化排行
  • 移动端 pc网站开发/安卓优化大师老版本
  • wordpress淘宝插件下载/安卓aso优化工具