《数据结构高分笔记》读书笔记

说明:

当年看完《数据结构高分笔记》2014版,吸收精华后写了一份让我引以为豪的精简笔记。。。。

然而现在掉了。。。。找到不到了。。。。痛心。。。。

为了巩固数据结构,不得已再拾起这本书再过一遍。。。。

这回笔记不再写在纸上了。。。。

虽然麻烦一点,但为了以后能快速拾起基本知识还是写成在线笔记吧。。。。


第一章   绪论

数据类型
结构型
 
即用户自己制作的数据类型
typedef:用来给现有的数据类型起一个新名字,新名字叫TypeA
eg. typedef int ELEMTYPE;  
typedef struct{
     int a;
     char b;
     float c;
}TypeA;



指针型

int *a  如果a是个指针型变量,且它已经指向一个变量b,则a中存放变量b所在的地址
*a 就是取变量b的内容(x=*a;等价于x=b;)
&b就是取变量b的地址
a=&b就是将变量b的地址存于a中,===指针a指向b

//链表的结构型定义:
typedef struct Node{//此结构型的名字叫Node,取名的原因是为了定义结构体内部的指针型
     int data;
     struct Node *next;//此处的Node应与Node处一致
}Node;//若此处为A,则声明时用A a;   若此处无内容,则声明用struct Node a;

//二叉树结点的定义
typedef struct BTNode{
     int data;
     struct BTNode *lchild;
     struct BTNode *rchild;
}BTNode, *btnode;// BTNode *p = btnode p; 一般可不用写*btnode


//制作二叉树的节点+动态申请数组空间
(1) BTNode BT; //BT就是某个结点的名字,不可再更改

(2) BTNode *BT; //BT是指针型变量,用以存储刚制作好的结点的地址
(2) BT = (BTNode*)malloc(n * sizeof(BTNode)); //一次申请一组长度为n的结点

取分量操作时:
(1)  x = BT.data;                             结构体变量             取分量,其操作用   “.”
(2)  x = BT->data;                   指向   结构体变量  的指针 取分量,其操作用     ”->”
           x = (*BT).data;   将(2)中BT转成  结构体变量             取分量 就可以用  “.”

函数

//使用引用型对普通变量进行改变
void f(int &x){
     ++x;
}

//若传入的变量是 指针型变量
void f(int *&x){
     ++x;
}

//只要数组作为参数,都是引用型的
//一维数组作为参数的函数声明方法
void f(int x[],int n){
     .....
}

//二维数组作为参数的函数声明方法
void f(int x[][maxSize],int n){//所传入的数组第二维长度也要是maxSize。
     .....                     // int a[10][5]  f(a);  int b[10][3]  f(b);
}

时间复杂度
时间复杂度常用的比较关系:
O(1)<O(log2(n))< O(n)< O(n log2(n) )< O(n2)< O(n3)< O(nk)< O(2n)























  • 10
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值