(一)彻底搞懂数据结构基础知识
(二)徹底搞懂数据结构线性表
- 先执行int i=0然后执行判断语句i<N,然后执行循环体内的语句最后执行循环变量变化语句++i,这就是循环的第一轮下┅步执行判断语句i<N,然后执行循环体内的语句最后执行循环变量变化语句++i,然后一直循环这个过程直到判断为假循环停止
- 如果想要result的徝改变,则把第三行的r改成&r
void getResult(int &r)
,直接引用result而不是把result的值赋给r(引用型定义,即result替换掉r需要改变实参的值时才这样定义,若不关心此值則没必要引用型定义);这样执行后result就变成1了 - 同样的问题若是在C语言中则需要把上述代码该成:
- 对于基本类型,我们是定义一个指针然後传入它的地址;对于指针型变量就定义指针的指针型然后传入指针的地址P保存了p指针的地址*P对P取值(把p还原出来了),然后把q这个指針赋值给它
逻辑结构:我们研究的对象之间的组织关系,有以下4种:
2.链式结构:没必要按顺序存储在一起存储单元里不仅存储数据,還存储了到另一个单元的地址用这种方式来维持存储单元间的关系。
- (注意:malloc函数会根据你的指定制造出一个合适大小的空间并返回這个空间的地址。制造出来的节点是没有名字的它只是给我们了一个节点的地址,上图中用L命名节点)
- 顺序结构支持随机存取因为顺序结构可以推算出其中任何一个存储单元的地址;而链式结构做不到这一点,因为每个节点中只存储了下一个节点的地址并且节点都是散落在内存中的,它们间没有什么位置上的关系