数据结构基础【学习笔记】
2015-01-27 22:27
232 查看
数据结构:软件中最核心课程
1. 数据结构:如何把现实中大量而复杂的问题,以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(如查找、删除某个元素)而执行的相应操作,这个相应的操作也叫算法。
个人理解:数据怎么存的问题
2. 算法:结题的方法和步骤
数据结构 = 个体 + 个体的关系
算法 = 对存储数据的操作
衡量算法的标准:
1. 时间复杂度
大概执行次数,而非执行时间(原因:不同机器执行速度不同)
2. 空间复杂度
算法执行过程中,大概占用最大内存
3. 难易程度
4. 健壮性
其他:
程序 = 数据的存储 + 数据的操作 + 可被计算机执行的语言
C语言指针【C语言的灵魂】
指针就是地址,地址就是指针。
指针变量:存放内存单元地址(内存单元编号)的变量
地址:内存单元的编号
指针的本质是一个操作受限的非负整数
通过外部函数改变局部变量的值:
Q: 如何改变 i 的值?
指针和一维数组:
一维数组
数组名:指针变量,存放的是第一个元素的地址(指向第一个元素),其值不能被改变
1. 数据结构:如何把现实中大量而复杂的问题,以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(如查找、删除某个元素)而执行的相应操作,这个相应的操作也叫算法。
个人理解:数据怎么存的问题
2. 算法:结题的方法和步骤
数据结构 = 个体 + 个体的关系
算法 = 对存储数据的操作
衡量算法的标准:
1. 时间复杂度
大概执行次数,而非执行时间(原因:不同机器执行速度不同)
2. 空间复杂度
算法执行过程中,大概占用最大内存
3. 难易程度
4. 健壮性
其他:
程序 = 数据的存储 + 数据的操作 + 可被计算机执行的语言
C语言指针【C语言的灵魂】
指针就是地址,地址就是指针。
指针变量:存放内存单元地址(内存单元编号)的变量
地址:内存单元的编号
指针的本质是一个操作受限的非负整数
int i = 10; int *p = &i; //等价于int *p; p = &i;
通过外部函数改变局部变量的值:
# include <stdio.h> void f(int i) { i = 100; } int main(void) { int i = 9; f(&i); printf("i = %d\n", i); //i = 9(局部变量只在本函数内部使用) //Q: 如何改变 i 的值? return 0; }
Q: 如何改变 i 的值?
# include <stdio.h> void f(int * p) { //定义一个形参,名为p,类型为int *(存放int类型变量的地址) * p = 100; } int main(void) { int i = 9; f(&i); printf("i = %d\n", i); //i = 100 return 0; }
指针和一维数组:
# include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; printf("%p\n", a); //%p 输出地址(每个整型占4字节) printf("%p\n", a + 1); printf("%p\n", a + 2); printf("%p\n", a + 3); printf("%p\n", a + 4); return 0; }
一维数组
数组名:指针变量,存放的是第一个元素的地址(指向第一个元素),其值不能被改变
相关文章推荐
- 【算法零基础入门】 学习笔记一 什么是数据结构
- 深层次两张图解经典6大排序与6大基础数据结构——学完这些,妈妈再也不用担心我的排序算法与数据结构,学习笔记大放送
- 数据结构 学习笔记之:线性表——顺序表、静态链表、动态链表(单链表、双链表、单循环链表、双循环链表,链式栈、链式队列)——基础概念大扫盲!
- python 基础数据结构-学习笔记之list
- 数据结构学习笔记一--基础
- 数据结构学习笔记---基础篇
- 数据结构学习笔记之C指针基础
- 数据结构学习笔记一:数据结构基础
- C#基础与常用数据结构学习笔记
- C#学习笔记(二十一):使用文件基础
- MOM2005基础架构设计学习笔记1
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(一)
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(一)
- [学习笔记]servlet基础知识整理
- 《面向对象基础:C++实现》学习笔记之五
- [ITIL学习笔记]ITIL基础知识
- wml语言学习笔记--基础教程(转)
- MOM2005基础架构设计学习笔记2
- HTML基础学习笔记
- 《面向对象基础:C++实现》学习笔记之一