数据结构整理
1、数据结构
相互之间存在一种或多种特定关系的数据元素的集合
2、
逻辑结构:数据元素之间的相互关系。
物理结构:数据的逻辑结构在计算机中的存储形式。
3、
时间复杂度:描述了该算法的运行时间;
空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度;
4、线性表存储结构
(1)用一段地址连续存储单元一次存储线性表的数据元素;
(2)线性表的结构体包括:存放元素的数组,线性表长度;
(3)线性表基本操作
1 /* 2 线性表操作 3 */ 4 5 6 #define MaxSize 100 7 #define OK 1 8 #define ERROR 0 9 10 typedef int ElemType; 11 typedef int Status; 12 13 //--线性表结构体--// 14 typedef struct 15 { 16 ElemType data[MaxSize]; 17 int length; 18 }sqList; 19 20 //--线性表查找--// 21 Status GetElem(sqList L,int i,ElemType *e) 22 { 23 if(i<0 || i>=L.length || L.length==0) 24 return ERROR; 25 26 *e=data[i-1]; 27 28 return OK; 29 } 30 31 //--线性表插入--// 32 Status InsertElem(sqList L,int i,ElemType e) 33 { 34 int j; 35 36 if(i<1 || i>L.length || L.length=MaxSize) 37 return ERROR; 38 39 if(i<L.length) 40 { 41 for(j=L.length;j>i-1;j--) 42 data[j]=data[j-1]; 43 } 44 45 data[i-1]=e; 46 L.length++; 47 48 return OK; 49 } 50 51 //--线性表删除--// 52 Status DeleteElem(sqList L,int i,ElemType *e) 53 { 54 int j; 55 56 if(i<1 || i>L.length || L.length==0) 57 return ERROR; 58 59 *e=data[i-1]; 60 61 for(j=i-1;j<L.length-2;j++) 62 data[j]=data[j+1]; 63 64 L.length--; 65 66 return OK; 67 68 }
5、链表
(1)一个节点包括:该节点的元素,下一个节点的指针;