数据结构线性表(一)

本文介绍了数据结构中的线性表,特别是顺序表的概念和操作,包括构造、插入、扩容、查找、删除和遍历。顺序表在逻辑和物理位置上元素相邻,但插入和删除可能涉及大量元素移动。文中还提到了顺序表的内存管理和扩容的代码思路。
摘要由CSDN通过智能技术生成

数据结构之线性表(一)

线性表
  • 是数据结构中最简单且常用的一种结构

  • 它由相同的数据类型的n个元素组成的有限序列

  • 按照存储结构,可以分为 顺序表链表两种

    顺序表

    主要特点是可以进行随机访问,可以通过表头元素的地址和元素的下标在O(1)的时间复杂度找到指定元素,主要介绍***构造,插入,扩容,查找,删除,遍历***这些操作

    • 特点 顺序表是用一组地址连续的储存单元依次存储数据元素,元素在逻辑和物理位置上是相邻的
    • 缺点: 插入和删除要移动大量的元素从而保持逻辑和物理上的连续性.
    • 构造顺序表

      1. 定义顺序链表的构造体类型

        typedef struct Vector {
                 
        	int size,length; //size用来存链表的大小,length存元素的长度
        	int *data;//data指针用来指向内存上开辟的空间.
        }Vector
        
        1. 初始化顺序链表被在堆上为其分配空间

          void init(Vector *vector,int size) {
                     
              vector->size = size;
              vector->length = 0;
              vector->data = (int *)malloc(sizeof(int)*size);//data指针指向malloc开辟的size个int类型的内存空间
          }
          
          int main() {
                     
              Vector *a = (Vector *)malloc(sizeof(Vector));//定义一个Vector类型的a指针,并为他指向一个Vector类型的内存空间.
              init(a, 100);//初始化a让其data数据
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值