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

宁波网站建设公司排名wordpress form 生成

宁波网站建设公司排名,wordpress form 生成,宁波app制作,wordpress 删除用户文章目录线性表顺序表接口实现尾插尾删头插头删指定位置插入指定位置删除练习线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列…

文章目录

  • 线性表
    • 顺序表
      • 接口实现
        • 尾插
        • 尾删
        • 头插
        • 头删
        • 指定位置插入
        • 指定位置删除
      • 练习

线性表

线性表(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 (begin<=ps->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
不难发现是一个等差数列 ,时间复杂度为O(N^2)

思路二:

依次遍历整个数组 ,把不是val 得值放到tmp 数组中 ,再把tmp数组得值拷贝到nums数组中 ,这样我们将时间复杂度优化到 O(N) ,但是空间复杂度 为O(N)
在这里插入图片描述

思路三 src去找nums 数组中不是val 的值 , 放到dst 指向的位置中 ,再++src ++dst
这样时间复杂度是O(N) ,空间复杂度是O(1)

在这里插入图片描述

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 (numsSize==0  ){return 0 ;}int j =1;int i = 0;int dst = 0 ;// j 没有越界 while( j<numsSize){// 判断 i和j是否相等 不相等就继续往下找if(nums[i] ==nums[j]){j++ ;}else   // 不相等就把 nums[dst]=nums[i]{nums[dst]=nums[i];i=j;dst++;j++;}}//j越界nums[dst]=nums[i];++dst;return dst ; // 返回dst的下标
}

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

http://www.yayakq.cn/news/887573/

相关文章:

  • 恶意点击别人的网站基础建设期刊在哪个网站可以查
  • 免费网站空间 - 百度什么网站百度的收录高
  • wp如何做双语网站线上直播营销策划方案
  • 做网站的公司都很小吗深圳网站建设多少钱
  • h5网站开发哪个好参与网站建设与维护的要求
  • 怎么做免费视频网站吗wordpress 网站开发
  • 网站栏目是什么谷歌seo优化技巧
  • 海南网站建设费用做壁画的网站
  • 嘉兴 网站 建设网站开发与管理共多少页
  • 目前做网站最好的语言是软件技术专业简介
  • 如何将视频添加到网站上网站建设返回函数
  • 网页网站开发公司做网站的时候想要满屏
  • 企业网站建站软件口碑好的购物网站建设
  • 国内开源网站优化关键词快速排名
  • 做网站最便宜要多少钱软件设计师中级含金量
  • 在网站中写小说想要删除如何做wordpress ftp没有权限设置
  • 做宾馆网站好比较好的网站开发框架
  • 网站建设作品cms 网站
  • 网站建设佛山拓客科技建筑设计网课
  • 没有网站做APP公众号图片wordpress
  • wordpress 点击文章seo网站项目
  • 在线相册jsp网站开发与设计golang 网站开发 教程
  • 网站宣传推广策划石家庄百度推广排名
  • 市住建设局网站后台网站更新 网站没显示
  • 科技手抄报简单又漂亮网站如何优化流程
  • 小学网站建设与管理办法谷歌海外广告投放
  • 网站标题符号的应用wordpress 文章添加子标题
  • 北京正规网站建设单价温州企业网站建设
  • 网站创建多少年了h5自适应网站模板
  • 凡科建设网站别人能进去么设计理念简短范文