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

电子商务网站建设特点网页制作中的常见问题

电子商务网站建设特点,网页制作中的常见问题,怎么做网站接家纺订单,网站建设典型经验文章目录线性表顺序表接口实现尾插尾删头插头删指定位置插入指定位置删除练习线性表 线性表#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/248429.html

相关文章:

  • 网站建设微商城wordpress模板左上角的logo换成自己的
  • 化纤公司网站建设国家企业信息认证系统
  • 2023网站分享口碑最好的装修公司排行
  • 学院网站建设策划书黄陂网站建设
  • 网站做专题主题该怎么选怎么用网站建设
  • asp做的手机网站个人网站后台管理
  • 山西自助建站费用低zimeiti wordpress
  • 沭阳做网站的公司怎样给网站做seo优化
  • 网站seo优化推推蛙wordpress付费下载主题
  • 旅游商城网站订单处理项目网站的建设有两种模式
  • 做网站前产品经理要了解什么深圳辰硕网站优化
  • 沈阳高端网站建设网站开发属于哪个税收分类
  • 关键词搜索工具好站网进出成都最新通知
  • iis新建网站无法浏览网站优化的基本思想与原则
  • 旅游网站设计图上海外贸seo推广
  • 公司网站建设维护合同范本在线表白网页制作
  • 免费商城网站申请网站建设的优缺点
  • 黄村做网站建设软件著作权登记证书
  • 佛山制作网站企业模板建站和仿站
  • 网站之间如何交换友情链接wordpress用户注册登录插件
  • 网站素材设计框架wordpress+商会+模版
  • 内网建设网站需要什么条件旭泽建站
  • 理财网站方案建设智能建造师证书的含金量
  • 网站源码下载网站怎么在企业站建立网站
  • 做宽屏网站营销型网站建设多少钱
  • 四川做网站企业融资方式有哪几种
  • 滨州网站seo企业网络安全
  • 中国设计之窗官方网站丰联汽配网站建设成本
  • 如何通过后台管理在网站的logo后台上加链接网站建设策划书参考案例
  • 信誉好的邢台做网站光棍天堂手机2019版免费观看