使用说明:每次实验都有相应的实验文件,请先下载,如数据结构-实验文件-01。html
目标:
学会使用CodeBlocks建立项目、编写程序、掌握经常使用快捷键。
参考资料:git
CodeBlocks使用小技巧github
学习目标:算法
难点:
多文件操做:头文件、include不懂。小程序
任务:数据结构
void swap1(int a, int b)
->void swap(int &a, int &b)
->再测试void swap(int a, int &b)
。参考资料:并发
数据结构-实验文件-01
多文件的C语言系统示例
Visual Studio 2017 安装使用教程(快速上手版)
使用Visual Studio Code开发(编译、调试)C++程序
C++指针速记函数
目标:visual-studio
任务:
到码云注册帐号,创建本身的代码仓库并规划好目录结构(chpt01-introduction, chpt02-linearlist...)
进阶任务:学习
参考资料:
目标:
熟悉顺序表的定义及其上的经常使用操做。
任务:
参考代码:
顺序表定义
#define MaxSize 100000 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; //存放顺序表元素 int length ; //存放顺序表的长度 } List; typedef List *SqList;
目标:
void DispLinkList(LinkList linklist)
,使用while
遍历输出刚才手动建立的链表。难点:
部分学生对于指针变量指向某个节点没有直观认识。不能将移动指针操做转化为代码,也不能从代码看出其对应的指针移动、指向操做。
参考资料:
单链表定义
typedef int ElemType; typedef struct LNode //定义单链表结点类型 { ElemType data; struct LNode *next; //指向后继结点 } LNode, *LinkList;
熟悉栈和队列的一些典型应用
递归
5.1 递归程序编写(自行完成,实验课考核加分)
题目:已知f为单链表的表头指针, 链表中存储的都是整型数据,试写出实现下列运算的递归算法:
① 求链表中的最大整数;
② 求链表的结点个数;
③ 求链表中全部节点数据的平均值。
5.2 使用stack将如下递归程序转化为非递归程序
void test(int &sum) { int x; cin>>x; if (x==0) sum = 0; else { test(sum); sum+=x; } cout<<sum; }
特别加分:使用递归或者队列实现对指定目录名及文件名进行文件查找(可以使用C、C++、Python、Java实现)。并发一个简单博客描述该问题解决过程。
参考资料:
完成试验任务书中第一题-拼接字符串(身份证),最后一题(判断是不是数字)。而后完成其余OJ上的字符串题目。
目标:
学会建立树,熟练掌握树的递归结构及在其上的递归算法,二叉树的基本操做,哈夫曼树,树的应用。
任务:
目标:
学会基本的查找与排序算法,学会将哈希表应用于快速查找、统计等。
任务:
拓展资料1:倒排索引
倒排索引原理和实现
拓展资料2:STL中set容器的用法
STL Map演示小程序
STL中的set使用方法详细!
STL之Set:Set的基本用法
C++使用: C++中map的基本操做和用法
基本目标:
任务:
注意: 本章上手难,能够适当引导如何建立邻接矩阵与邻接表。能够用试验任务书的例子按部就班,逐步建立一个图。