刘佳瑜*,王越 *, 黄扬* , 张钊*
(淮北师范大学计算机科学与技术学院,安徽 淮北)
*These authors contributed to the work equllly and should be regarded as co-first authors.
🌞欢迎来到数据结构的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
🥝人员介绍
天下之大,江湖之远。在AI领域有这样一个地方--卿云阁,那是一个天下最神秘的地方,但同时,却也是天下最公开的地方。
🥥特点
- 本书没有没有枯燥的理论和复杂的公式,而是通过大量的步骤图帮助读者加深对数据结构原理和算法执行过程的理解,便于学习和记忆。
- 本书基本都是步骤图可打印出来作为自己的笔记使用,可以搭配朱昌杰老师的课本。
- 本书在CSDN上有每个算法的详细代码,每一章的项目实战和课后习题的详解。
🍇必备知识
(1)元素类型说明
typedef char ElemType;
其中ElemType就相当与char。
例:多项式的表示,其中p代表的是系数,e代表的是指数。
typedef struct{ float p; int e; }Polynomial; //定义顺序表类型 typedef struct{ Polynomial data[MAXSIZE]; int length; //当前长度 }SqList; //定义顺序表类型
·
(2)数组定义
数组静态分配
#include<stdio.h> #define MAXSIZE 10 //MAXSIZE是根据实际问题定义的足够大的整数常量 typedef int DataType; typedef struct{ DataType data[MAXSIZE]; int length; }SqList; //定义顺序表类型 int main() { SqList L; return 0; }
数组动态分配
#include<stdio.h> #define MAXSIZE 10 //MAXSIZE是根据实际问题定义的足够大的整数常量 typedef int DataType; typedef struct{ DataType *data;//定义了一个指针变量存放地址 int length; }SqList; //定义顺序表类型 int main() { SqList L; L.data=(DataType*)malloc(sizeof(DataType)*MAXSIZE);//在C++中也可以使用new,和delete free(L.data); //释放空间 L.data=NULL; return 0; }
(3)C++中的参数传递
传值调用
#include<iostream> using namespace std; void swap(int m,int n){ int temp; temp=m; m=n; n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<"b="<<b<<endl; swap(a,b); cout<<"a="<<a<<"b="<<b<<endl; return 0;}
传址调用--指针变量作为参数
#include<iostream> using namespace std; void swap(int* m,int* n){ int temp; temp=*m; *m=*n; *n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<"b="<<b<<endl; swap(&a,&b); cout<<"a="<<a<<"b="<<b<<endl; return 0;}
传址调用--引用作为参数
#include<iostream> using namespace std; void swap(int &m,int &n){ int temp; temp=m; m=n; n=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<"b="<<b<<endl; swap(a,b); cout<<"a="<<a<<"b="<<b<<endl; return 0;}
传址调用--数组名作为参数
#include<iostream> using namespace std; void swap(int m[],int n[]){ int temp; temp=m[0]; m[0]=n[0]; n[0]=temp; } int main() { int a=5,b=10; cout<<"a="<<a<<"b="<<b<<endl; swap(&a,&b); cout<<"a="<<a<<"b="<<b<<endl; return 0;}
(4)C操作算法中常用到的预定义常量和类型
#define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0
Institutional Review Board Statement: Not applicable.
Informed Consent Statement: Not applicable.
Data Availability Statement: Not applicable.
Author Contributions:All authors participated in the assisting performance study and approved the paper.
Conflicts of Interest: The authors declare no conflict of interest