顺序表+练习习题(跑路人笔记)

简介: 顺序表+练习习题(跑路人笔记)

线性表

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…


线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。

顺序表

2.1概念及结构


顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。在数组上完成数据的增删查改。


顺序表一般可以分为:


静态顺序表:使用定长数组存储。

动态顺序表:使用动态开辟的数组存储。----使用malloc或realloc实现

先前我们的通讯录就是使用的顺序表实现的.


练习题

3.1 原地移除元素:https://leetcode-cn.com/problems/remove-element/


int removeElement(int* nums, int numsSize, int val)
{
  int src = 0;
  int dst = 0;
  while (src < numsSize)
  {
  if (nums[src] == val)
  {
    src++;
  }
  else
  {
    nums[dst++] = nums[src++];
  }
  }
    return dst;
}



十分典型的双指针做法:


其实通过src寻找非val的数字并让后面的dst覆盖.


合并两个有序数组

3.2 合并两个有序数组:https://leetcode-cn.com/problems/merge-sorted-array/


void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
  int end1 = m - 1;
  int end2 = n - 1;
  int end = m + n - 1;
  while (end1 >= 0 && end2 >= 0)
  {
  if (nums2[end2] >= nums1[end1])
  {
    nums1[end] = nums2[end2];
    end2--;
    end--;
  }
  else
  {
    nums1[end] = nums1[end1];
    end1--;
    end--;
  }
  }
    while (end2 >= 0)
  {
  nums1[end] = nums2[end2];
  end2--;
        end--;
  }
}



通过从后往前的比较将较大的数覆盖到nums1数组中.


相关文章
|
算法 测试技术 定位技术
数据结构与算法——DFS(深度优先搜索)
数据结构与算法——DFS(深度优先搜索)
|
SQL 分布式计算 运维
开源大数据 OLAP 引擎最佳实践 | 学习笔记(二)
快速学习开源大数据 OLAP 引擎最佳实践
开源大数据 OLAP 引擎最佳实践 | 学习笔记(二)
|
9月前
|
机器学习/深度学习 人工智能 Cloud Native
2024阿里云天池大学生竞赛正式开赛,全网招募高校最强大脑!
2024阿里云天池大学生竞赛正式开赛,全网招募高校最强大脑!
|
9月前
|
存储 机器学习/深度学习 人工智能
C 408—《数据结构》易错考点200题(含解析)
408考研——《数据结构》精选易错考点200题(含解析)。
930 27
|
存储 机器学习/深度学习
【数据结构】二叉树全攻略,从实现到应用详解
本文介绍了树形结构及其重要类型——二叉树。树由若干节点组成,具有层次关系。二叉树每个节点最多有两个子树,分为左子树和右子树。文中详细描述了二叉树的不同类型,如完全二叉树、满二叉树、平衡二叉树及搜索二叉树,并阐述了二叉树的基本性质与存储方式。此外,还介绍了二叉树的实现方法,包括节点定义、遍历方式(前序、中序、后序、层序遍历),并提供了多个示例代码,帮助理解二叉树的基本操作。
1014 13
【数据结构】二叉树全攻略,从实现到应用详解
|
11月前
|
存储 人工智能 程序员
【C语言】一篇通关所有 “关键字”,值得收藏篇!
关键字是编程语言预定义的保留词,代表特定的操作或结构。C语言中的关键字用于定义变量类型、控制语句、存储类、数据类型等。使用这些关键字可以创建函数、控制程序的流程、声明变量和常量等。
2147 0
|
存储
数据结构:图文详解单链表的各种操作(头插法,尾插法,任意位置插入,删除节点,查询节点,求链表的长度,清空链表)
数据结构:图文详解单链表的各种操作(头插法,尾插法,任意位置插入,删除节点,查询节点,求链表的长度,清空链表)
1994 0
|
SQL Java 关系型数据库
【Java】已解决Java中的com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException异常
【Java】已解决Java中的com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException异常
1474 0
|
缓存 资源调度
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
7768 2
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
723 0