大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~
希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!!
加油吧!未来可期!!!
typedef-C++引用
typedef的使用
#include <stdio.h>
#include <stdlib.h>
typedef struct student{
int num;
char name[20];
char sex;
}stu,* pstu; //typedef 的作用是起别名
typedef int INTEGER; //给int起个别名
int main()
{
stu s = { 11,"20",'M' }; // s是结构体变量
pstu p; // p是结构体指针变量
INTEGER i = 10;
p = &s;
printf("i=%d,p->num = %d\n", i, p->num);
system("pause");
}
?C++引用
结构体变量的操作
#include <stdio.h>
#include <stdlib.h>
void change(int& p)
{
//注意int& p是c++的引用
//如果是c语言 要写成(*p)++;
p++;
}
int main()
{
int a = 10;
change(a);//c++调用
//change(*a);//c语言调用
printf("a=%d", a);
int* p = NULL;
change_pointer(p);
printf("p=&d", p[0]);
return 0;
}
结构体指针变量操作
#include <stdio.h>
#include <stdlib.h>
void change(int& p)
{
//注意int& p是c++的引用
//如果是c语言 要写成(*p)++;
p++;
}
void change_pointer(int*& p) { //在子函数内操作p和主函数操作p手法一致
p = (int*)malloc(20);
p[0] = 5;
}
int main()
{
int a = 10;
change(a);//c++调用
//change(*a);//c语言调用
printf("a=%d", a);
int* p = NULL;
change_pointer(p);
printf("p=&d", p[0]);
return 0;
}
c语言的二级指针和c++引用的区别
---------------------------------------------------------------------------------------------------------------------------------
逻辑结构和存储结构
逻辑结构:
集合结构(元素与元素之间没有联系,但在同一集合内)
线性结构(元素与元素之间是一对一的关系)
树形结构(元素与元素之间是一对多的关系)
图形结构(元素与元素之间是多对多的关系)
?
存储结构:
顺序存储:每一个数据项的地址是有序排列的
链式存储:每一个数据项的地址不一定是有序排列的(一个数据项存储指向下一个数据项的地址)
索引存储和散列存储的基础是顺序存储和链式存储,在一定程度上是对顺序存储和链式存储的优化(比如在查找数据方面、存储数据方面等等)
?
?
?时间复杂度:看循环的嵌套,一个循环一个O(f(n));如果有两个复杂度相加,取那个最大的时间复杂度。
?
?例如:
?
?
?
?
?
空间复杂度:看申请使用的内存。
如果是变量i,空间复杂度为O(1);
如果申请了一个动态数组,空间复杂度为O(n);
.......
?
?
?
?
|