目录:
·数据结构的不同定义
·什么是数据结构
·抽象数据类型
·什么是算法
·多项式表示
数据结构的不同定义:
1、数据结构:是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。
2、数据结构:是ADT(抽象数据类型)的物理实现。
3、 数据结构:是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最有效率的算法。
什么是数据结构:
*数据对象在计算机中的组织方式
*数据对象必定与一系列加在其上的操作相关联系
*完成这些操作所用的方法就是算法
抽象数据类型:
*数据类型
数据对象集
数据集合相关联的操作集
*抽象:描述数据类型的方法不依赖于具体实现
与存放数据的机器hRow(Matrix A):返回矩阵A的总行数;
int CetMaxCol(Matrix A):返回矩阵A的总行数;
ElementType GetEntry(Matrix A,int i,int j):返回矩阵A的第i行、第j列的元素;
Matrix Add(Matrix A,Matrix B):如果A和B的行、列数一致,则返回矩阵C=A+B,否则返回错 误标志;
Matrix Multiply(Matrix A,Matrix B):如果A的列数等于B的行数,则返回矩阵C=AB,否则返回错误标志;
什么是算法?
算法:
一个有限指令集
接受一些输入(有些情况下不需要输入)
产生输出
一定在有限步骤之后终止
每一条指令必须:有充分明确的目标,不可以有歧义;
计算机能处理的范围之内;
描述应不依赖于任何一种计算机语言以及具体的实现手段
选择排序算法的伪代码描述
void SielectionSort(int List[],int N)
{ /*将N个整数List[0]...List[N-1]进行非递减排序*/
for(i=0;i<N;i++){
MinPosition=ScanForMin(List,i,N-1);
/*从List[i]到List[N-1]中找最小元,并将其位置献给MinPosition*/
Swap(List[i],List[MinPosition]);
/*将为排序部分的最小元换到有序部分的最后位置*/
}
}*
多项式表示
方法一:顺序存储结构直接表示
方法二:顺序存储结构表示非零项
方法三:链表结构存储非零项
链表中每个节点存储多项式中的一个非零项,包括系数和指数两个数据域以及一个指针域
coef | expon | link |
typedef struct PolyNode*Polynomial;
struct PolyNode{
int coef;
int expon;
Polynomial link;
}