首页 > 代码库 > 数据结构——线性表(第二章)
数据结构——线性表(第二章)
一、基本概念
1、线性表:简称表,是n(n>=0)个具有相同类型的数据元素的有限序列,线性表中数据元素的个数称为线性表的长度。长度为零时称为空表。
2、线性表的顺序存储结构称为顺序表。
3、单链表:单链表是一组任意的存储单元存放线性表的位置,这组存储单元可以连续也可以不连续,甚至可以零散分布在内存中的任意位置。
下面着重介绍有关单链表的操作:
#include<iostream> using namespace std; const int maxsize = 10; // 定义单链表的结点 struct Node { int data; struct Node *next; }; // linklist 类的声明 class linklist { public: linklist(); // 建立只有头结点的单链表 linklist(int a[],int n); // 建立有N个元素的单链表 ~linklist(); // 析构函数 void insert(int i,int x); // 在单链表的第 i 个位置插入元素值为 x 的结点 int Delete(int i); // 在单链表中删除第 i 个结点 int locate(int x); // 在单链表中 按值 查找 元素为x的元素 的位置(序号) void printlist(); // 按序号依次输出各元素 private : Node *first; // 单链表的头指针。 }; linklist::linklist() { first = new Node; // 生成头结点 first ->next=NULL; // 头结点指针域 置空 } linklist::linklist(int a[],int n) { Node *r,*s; first = new Node; // 生成头结点 r = first; // 尾指针 初始化 for(int i = 0;i<n;i++) { s=new Node; s->data= http://www.mamicode.com/a[i]; // 为每个元素建立一个结点 >
4、循环链表:在单链表中,如果将终端结点的指针域由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为循环单链表,简称循环链表。5、双链表: 在循环链表中,虽然从任一结点出发可以扫描到其他结点,但要找到其他前驱结点,则需要遍历整个循环链表。如果希望快速确定表中任一结点的前驱结点,可以在单链表的每个结点中再设置一个指向其前驱结点的指针域,这样就形成了双链表。
6、静态链表:静态链表是用数组来表示单链表,用数组元素的下标来模拟单链表的指针。
7、间接寻址:是将数组和指针结合起来的一种方法,它将数组中存储数据元素的单元改为存储指向该元素的指针。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。