- 数据
1.对客户事物的符号表示 |
2.能够输入到计算机 |
3.能够被计算机程序进行处理 |
数据元素:是数据的基本单位。
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。
数据的逻辑结构:
1.线性结构:线性表 栈 队列
2.非线性结构:树形结构 图形结构
数据的存储结构:
1.顺序存储
2.链式存储
数据的运算:检索 排序 插入 删除 修改 等
A 线性表:
静态:表中结点的存储是连接的,占用一块连续存储区,一般节点数是固定的
动态:表中节点的存储是不连续的,一般节点的数量是不固定的
静态图型表示:
数据1 |
数据2 |
数据3 |
... |
数据n-1 |
数据n |
后继2 |
后继3 |
后继4 |
... |
后继n |
null |
结构:
typedef struct{
T data;//数据域
int next;//后继
}Node,*pNode;
线性存储结构:借助元素在存储器中的相对位置(物理位置)相临来表示,数据元素之间的逻辑关系。
缺点:插入,删除元素时需要移动大量的数据;一次性分配内存空间,表的容量难以扩充。
动态:
结构:
typedef struct{
T data;//存储数据信息,数据域
Node *next;//存储直接后继存储位置,指针域
}Node,*pNode;
链式存储结构:
struct Node{
int data;
struct Node *next;
};
typedef struct Node m_Node;
只有一个指针域的结构图:
分为:单链 单循环链 双向循环链
带头结点和不带头结点,头结点是指头指针所指的不存放数据元素的结点。
单链表的操作:
A。删除:
p=a.next;
a.next=a.next.next;
delete p;
B .插入:
new p; //申请
p.data=x; //加载数据
p.next=a.next;//加载后继
a.next=p;确定前继
笔记二付代码,请关注,谢谢。