📔
数据结构简单学
  • 序言
  • 绪论
    • 数据结构基本概念
    • 算法基本概念
  • 线性表
    • 顺序表
    • 单链表
    • 双链表
    • 循环链表
    • 区别
  • 栈和队列
    • 栈
    • 队列
    • 应用
  • 数组
  • 字符串
  • 哈希表
  • 树和二叉树
    • 基本概念
    • 二叉树遍历与构造
    • 线索二叉树
    • 树、森林
    • 二叉排序树
    • 平衡二叉树
    • 哈夫曼树
  • 图
    • 基本概念
    • 图的存储及基本操作
    • 图的遍历
    • 图的应用
  • 查找算法
  • 排序算法
    • 冒泡排序
    • 简单选择排序
    • 简单插入排序
    • 希尔排序
    • 归并排序
    • 快速排序
    • 堆排序
  • STL系列
    • 基础知识
    • Vector 动态数组
    • List 链表
    • Stack 栈
    • Queue 队列
    • Set 集合
    • Map
  • 总结与展望
Powered by GitBook
On this page
  • 定义:
  • 基本操作:
  • 另外说明:

Was this helpful?

线性表

定义:

  废话不多说,开门见山。线性表是什么?线性表是具有相同数据类型的n个数据元素的有限序列。

  若用L命名线性表,则一般表示为:

L=(a1,a2,..,ai,ai+1,...,an)L = ( a1,a2,..,ai,ai+1,...,an)L=(a1,a2,..,ai,ai+1,...,an)

  a1 为表头元素,an为表尾元素;除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有仅有一个直接后继。

  注意:线性表是一种逻辑结构,而后面讲的顺序表和链表是指存储结构,属于不同概念。

基本操作:

  1)InitList(&L):初始化表

  2)Length(L):求表长

  3)LocateElem(L, e):按值查找操作

  4)GetElem(L, i ):按位查找操作

  5)ListInsert(&L,i,e):插入操作

  6)ListDelete(&L,i,e):删除操作

  7)PrintList(L):输出操作

  8)Empty(L):判空操作

  9)DestoryList(L):销毁操作

另外说明:

  值传递,引用传递,指针传递:

  1、值传递:

void f(int x)

  传值传的是原来实参的一份拷贝,对形参进行操作不会改变实参的值。函数返回后,函数栈帧销毁,这份拷贝也会自动被回收。

  2、引用传递:

void f(int& x)

  传引用什么也没创建,只是给实参起个别名,就像同学之间取外号一样,张三是一个同学,别人给他取名就二狗,那么张三,二狗就是同一个人。在这也是一样的,对引用进行操作就等于对实参的操作,对引用的操作会影响原来的实参。

  3、指针传递:

void f(int* &x)

  如果传入的指针型变量,并且在函数体内要对传入的指针进行改变,则可以按照上述编写参数。

  传指针就是为实参传建一个指针变量,指针变量里面存的就是实参的地址,对形参进行操作也会通过指针的间接访问对实参进行修改,所以对形参的操作会影响原来的值。

Previous算法基本概念Next顺序表

Last updated 4 years ago

Was this helpful?