数据结构笔记整理第1章:绪论

本章作为数据结构的起点,介绍了课程框架,强调C/C++编程基础,涵盖数据类型、指针操作、链表节点构造、函数参数传递、空间分配及前缀后缀表达式。此外,还讲解了基本概念如数据、数据元素和存储结构,以及算法的时间与空间复杂度计算的重要性。
摘要由CSDN通过智能技术生成

第1章 绪论

本章内容

本章主要介绍课程的框架、会使用到的C,C++的基本语法以及空间、时间复杂度的计算方法。

1.1 课程框架


全课程总共分为:线性表、栈与队列、字符串、矩阵、树与二叉树、图、排序和查找这些内容。


线性表为最基础内容,包括:顺序表的建立和相应的增删改查操作;链表的种类:单链表、双链表、循环单链表、循环双链表、链表的两种基本建立方法和相应的增删改查操作等等。


栈与队列:分为线性和链式两种,掌握它们实现栈和队列的方法。掌握栈的FILO和队列的FIFO的性质,会利用它们的性质完成典型的任务,例如字符串匹配。


字符串:了解字符串基本知识,KMP匹配算法


矩阵:数组,稀疏矩阵压缩


树与二叉树:树的存储方式、建立、节点与叶子数目的关系、性质、遍历方式、与森林的转化、二叉树的性质、建立、遍历方式、平衡二叉树的建立与插入删除、哈夫曼树与哈夫曼编码


:图的存储方式、种类、变量算法、最小生成树、最短路径、关键路径、拓扑排序


排序:时间复杂度O(n)、稳定性、排序过程、交换类排序、选择类排序、插入类排序、归并排序、基数排序(桶排序)、外部排序


查找:顺序查找、二分查找、二叉树存储查找、散列查找、散列表(Hash Table)的建立以及解决冲突的几种方法

1.2 使用到的C、C++的编程基础

相信能够修数据结构的童鞋有一定的编程基础,这里就不说那些最基础的概念了,否则文档讲的就不是数据结构了。这里我们重点介绍一些数据结构常用的基础知识。

1.2.1 数据类型

基本类型:float、int、char等均属于此类


结构型:用户自己设计的数据类型,如利用struct实现。举个例子:

typedef struct Student {        
    int ID;    
    string name;
    int age;
} Student;

这里面我们定义了一个新的类型叫做Student,这个类型里面包括一个int类型的ID、一个string类型的name和一个int类型的age。


指针型:是地址,指向对应类型的某一个变量的地址。举个例子:

int *p;
int number = 233333;
p = &number;//将number的地址赋值给p

这里面int指针类型的变量p,它指向了一个int类型变量number,就是说此时p所存放的就是number的地址。

1.2.2 *与&问题

相信很多童鞋都对C/C++中的指针非常讨厌,那么在这里我们简单介绍一下有关指针的基本操作,目的还是为了方便后面的内容。再举个例子:

#include <iostream>
using namespace std;

int main() {
    int a = 233333;
    int b;
    int *p
    //将a的地址赋值给p,此时p的内容就是a的地址了,&是取地址的意思
    p = &a;
    //获取p指向的地址存放的内容,*是根据地址获取内容,此时b的值就是p指向的地址中的内容
    b = *p;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值