算法数据结构学习---起始篇(c++版本)

数据结构简介
在这里插入图片描述
常见的数据结构可分为「线性数据结构」与「非线性数据结构」,具体为:「数组」、「链表」、「栈」、「队列」、「树」、「图」、「散列表」、「堆」。
数组(Array)
对于数组,记住最重要的两点:连续的空间和不可改变的大小。

如图所示(图片中是对于java new一个数组),定义一个长度为4 的数组,并对每个数组的索引元素赋值,c++代码如下:

//初始化
int array[5];
//元素进行赋值
array[0]=2;
array[1]=3;
array[2] = 1;
array[3] = 0;
array[4] = 2;

或者是直接用以下代码进行初始化操作。

int array[] = {
   2, 3, 1, 0, 2};

在这里插入图片描述

但是数组不能改变大小,还需要连续空间,那么对于数组的操作不就会显得有些局限吗?
所以,后来就提出来了,可变数组这个内容,能够灵活调整自己的大小,它是基于数组和扩容机制一起实现的。常见的操作有:查、删、增。

// 初始化可变数组
vector<int> array;

// 向尾部添加元素
array.push_back(2);
//访问可变数组的大小
array.size();
//删除最后一个元素
array.pop_back()
//判断是否为空
array.empty()
//传回第一个下标
array.begin()
//返回最后一个小标
array.end()

上述的可变数组声明中的vector实际上是一个对象实体,又被称为容器,可以被广义的认为是数组的加强版本。后续章节会讲到关于vector的专门讲解,此处便不做过多的介绍。

链表(Linked List)
链表以节点为单位,每个元素都是一个独立的对象,在内存空间的存储是非连续的。链表的节点对象具有两个成员变量:[值 val],[后继节点 next]

链表的c++代码:

struct ListNode {
   
    int val;        // 节点值
    ListNode *next; // 后继节点引用<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值