线性表
定义:
废话不多说,开门见山。线性表是什么?线性表是具有相同数据类型的n个数据元素的有限序列。
若用L命名线性表,则一般表示为:
L
=
(
a
1
,
a
2
,
.
.
,
a
i
,
a
i
+
1
,
.
.
.
,
a
n
)
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)
如果传入的指针型变量,并且在函数体内要对传入的指针进行改变,则可以按照上述编写参数。
传指针就是为实参传建一个指针变量,指针变量里面存的就是实参的地址,对形参进行操作也会通过指针的间接访问对实参进行修改,所以对形参的操作会影响原来的值。
如果觉得本文对你有帮助的话,不妨关注作者一波,小小的关注其实对我很重要。更多高质量内容与资料请访问:数据结构简单学,个人主页:修心的小屋
如果喜欢的话,不妨关注一波,谢谢啦。