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

珠海建设工程监督站网站制作app需要下载什么软件

珠海建设工程监督站网站,制作app需要下载什么软件,做外贸去哪个网站找客户,品牌网站建设的作用文章目录线性表顺序表接口实现尾插尾删头插头删指定位置插入指定位置删除练习线性表 线性表#xff08;linear list#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构#xff0c;常见的线性表#xff1a;顺序表、链表、栈、队列… 文章目录线性表顺序表接口实现尾插尾删头插头删指定位置插入指定位置删除练习线性表 线性表linear list是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构常见的线性表顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构也就说是连续的一条直线。但是在物理结构上并不一定是连续的线性表在物理上存储时通常以数组和链式结构的形式存储 顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。在数组上完成数据的增删查改 顺序表就是数组但是是在数组的基础上另外还要求数据是从头开始存储 并且数据是连续存储的不能跳跃间隔 顺序表一般可以分为 静态顺序表使用定长数组存储元素动态顺序表使用动态开辟的数组存储 接口实现 尾插 typedef struct SeqList {SLDaTaType * a;int size; // 数组中存了多少个数int capacity; //数组实际容量个数 }SL;void SeqListPushBack(SL* ps, SLDaTaType x) //尾插 {assert(ps);//空间不足则扩容 if (ps-capacity ps-size){int newcapacity ps-capacity 0 ? 4 : ps-capacity * 2; // 若空间为0 就放4个字节 否则capacity *2 SLDaTaType * tmp ( SLDaTaType* )realloc(ps-a, newcapacity * sizeof(SLDaTaType));if (tmp NULL) //开辟失败{printf(realloc fail \n);exit(-1); }ps-a tmp;ps-capacity newcapacity;}ps-a[ps-size] x; // 空间足够 ps-size; } void SeqListDestory(SL* ps) //销毁 防止内存泄露 {assert(ps);free(ps-a);ps-a NULL; ps-size ps-capacity 0; } 尾删 void SeqListPopBack(SL* ps)// 尾删 {assert(ps);// ps-a[ps-size - 1] 0;assert(ps-size 0);ps-size--; }头插 最后一个数向后挪动 void SeqListPushFront(SL* ps, SLDaTaType x) // 头插 {assert(ps);// 挪动 int end ps-size - 1;while (end 0){ps-a[end 1] ps-a[end];end--;}ps-a[0] x;ps-size; }头删 void SeqListPopFront(SL* ps) // 头删 {assert(ps);assert(ps-size 0);//挪动数据int begin 1 ;while (beginps-size){ps-a[begin - 1] ps-a[begin];begin;}ps-size--; }找到了返回x位置下标 若没有找到返回-1 int SeqListFind(SL* ps, SLDaTaType x) {assert(ps);for (int i 0; i ps-size; i){if (ps-a[i] x){return i;}}return -1; }指定位置插入 void SeqListInsert(SL* ps, int pos, SLDaTaType x) // 指定位置插入 {assert(ps);assert(pos 0 pos ps-size);int end ps-size -1 ;SeqListCheckCapacity(ps); //防止后面空间不足 挪动的时候越界访问while (end pos){//挪动 ps-a[end 1] ps-a[end];end--;}//插入数据ps-a[pos] x;ps-size; }指定位置删除 void SeqListErase(SL* ps, int pos) // 指定位置删除 {assert(ps);assert(pos 0 pos ps-size);int begin pos 1;while (begin ps-size){ps-a[begin - 1] ps-a[begin];begin;}ps-size--; }练习 https://leetcode.cn/problems/remove-element/ 思路一 找到所有的val 一次挪动数据覆盖删除 时间复杂度最坏的情况是数组中绝大部分值是val甚至全部是val 假设数组中有N个数据 第一个数据是val 这时候需要挪动N-1 个元素 第二个数据是val 得挪动N-2个元素 依次类推 第n个数据是val 得挪动N-n 不难发现是一个等差数列 时间复杂度为ON^2) 思路二 依次遍历整个数组 把不是val 得值放到tmp 数组中 再把tmp数组得值拷贝到nums数组中 这样我们将时间复杂度优化到 ON 但是空间复杂度 为O(N) 思路三 src去找nums 数组中不是val 的值 放到dst 指向的位置中 再src dst 这样时间复杂度是ON 空间复杂度是O1 int removeElement(int* nums, int numsSize, int val) {int src 0;int dst 0 ;while (src numsSize ){if( nums[src]!val ){nums[dst] nums[src];src ;dst ; }else {src;}}return dst; }https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ int removeDuplicates(int* nums, int numsSize) {if (numsSize0 ){return 0 ;}int j 1;int i 0;int dst 0 ;// j 没有越界 while( jnumsSize){// 判断 i和j是否相等 不相等就继续往下找if(nums[i] nums[j]){j ;}else // 不相等就把 nums[dst]nums[i]{nums[dst]nums[i];ij;dst;j;}}//j越界nums[dst]nums[i];dst;return dst ; // 返回dst的下标 }如果你觉得这篇文章对你有帮助不妨动动手指给点赞收藏加转发给鄃鳕一个大大的关注 你们的每一次支持都将转化为我前进的动力
http://www.dnsts.com.cn/news/15998.html

相关文章:

  • 百城建设提质工程网站德阳公司网站建设
  • 昆明网站开发建wordpress 文艺主题
  • 门户 网站 asp国外产品推广是怎么做的
  • 男生和女生做污的事情免费网站wordpress 系统要求
  • 山东一建建设有限公司官方网站自己创建一个网站需要多少钱
  • 遵义本地网网站改版seo方案
  • 长沙企业网站建设沈阳关键字优化公司
  • 专利减缓在哪个网站上做wordpress空2格插件
  • 增光路网站建设竞价推广论坛
  • 可拖拽式网站建设网页版游戏大全
  • wordpress个人博客网站黄页是什么应用
  • 网站建设申请空间怎么看公司网站做的好不好哦
  • 市北区大型网站建设管理咨询师证书
  • 高清品牌网站设计建设中国建设银行黄冈分行网站
  • 线上购物网站建设的可行性购物网站首页制作代码
  • 国外源码网站建设网站的好处
  • 百度做个网站多少钱网站有利于seo的细节
  • 南京网站制作公司排名前十wordpress google 360
  • 成品网站灬1688图片 网站源码
  • 昆明网站建设优化企业企业网站设计哪个好
  • 合肥网站建设合肥做网站代理厦门网站设计公司
  • 简历网站免费更换wordpress主题头部
  • 南宁做网站在哪了360建站系统
  • 无为县做互联网网站外贸网站建设服务商
  • 北京海淀社保网站恒华大厦做网站公司
  • wordpress建站的案例网站里面内外链接如何做
  • 网站 橙色网站添加定位怎么做
  • 国外建设网站用的是什么软件网站反链一般怎么做
  • wordpress修改站名廊坊手机模板建站
  • 自己做网站花钱么wordpress只在首页设置关键词