数据结构---基础知识必备

刘佳瑜*,王越 *, 黄扬* , 张钊*

(淮北师范大学计算机科学与技术学院,安徽 淮北)

*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
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卿云阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值