线性表

定义:

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

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

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)

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

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

Last updated