课程目录展开/折叠
- 9月份课程直播回放
- 第1课 CSP-J大纲知识专题&初赛真题精讲试学
- 第2课 CSP-J大纲知识专题&初赛真题精讲试学
- 第3课 CSP-J大纲知识专题&初赛真题精讲试学
- 第4课 CSP-J大纲知识专题&初赛真题精讲试学
- 第5课 CSP-J大纲知识专题&初赛真题精讲
- 第6课 CSP-J大纲知识专题&初赛真题精讲
- 第7课 CSP-J大纲知识专题&初赛真题精讲试学
- 第8课 CSP-J大纲知识专题&初赛真题精讲试学
- 第9课 CSP-J大纲知识专题&初赛真题精讲试学
- 第10课 CSP-J大纲知识专题&初赛真题精讲试学
- 第11课 CSP-J大纲知识专题&初赛真题精讲试学
- 第12课 CSP-J大纲知识专题&初赛真题精讲试学
- 第13课 CSP-J大纲知识专题&初赛真题精讲试学
- 第14课 CSP-J大纲知识专题&初赛真题精讲试学
- 第15课 CSP-J大纲知识专题&初赛真题精讲试学
- 第16课 CSP-J大纲知识专题&初赛真题精讲试学
- 第17课 CSP-J大纲知识专题&初赛真题精讲试学
- 第18课 CSP-J大纲知识专题&初赛真题精讲试学
- 8月份课程直播回放
- 第1课 CSP-J大纲知识专题&初赛真题精讲试学
- 第2课 CSP-J大纲知识专题&初赛真题精讲试学
- 第3课 CSP-J大纲知识专题&初赛真题精讲试学
- 第4课 CSP-J大纲知识专题&初赛真题精讲试学
- 第5课 CSP-J大纲知识专题&初赛真题精讲
- 第6课 CSP-J大纲知识专题&初赛真题精讲
- 第7课 CSP-J大纲知识专题&初赛真题精讲
- 第8课 CSP-J大纲知识专题&初赛真题精讲
- 第9课 CSP-J大纲知识专题&初赛真题精讲
- 第10课 CSP-J大纲知识专题&初赛真题精讲
- 第11课 CSP-J大纲知识专题&初赛真题精讲
- 第12课 CSP-J大纲知识专题&初赛真题精讲
- 第13课 CSP-J大纲知识专题&初赛真题精讲
- 第14课 CSP-J大纲知识专题&初赛真题精讲
- 第15课 CSP-J大纲知识专题&初赛真题精讲
- 第16课 CSP-J大纲知识专题&初赛真题精讲
- 第17课 CSP-J大纲知识专题&初赛真题精讲
- 第18课 CSP-J大纲知识专题&初赛真题精讲
- 第19课 CSP-J大纲知识专题&初赛真题精讲
- 第20课 CSP-J大纲知识专题&初赛真题精讲
- 第21课 CSP-J大纲知识专题&初赛真题精讲
- 第22课 CSP-J大纲知识专题&初赛真题精讲
- 第23课 CSP-J大纲知识专题&初赛真题精讲
- 第24课 CSP-J大纲知识专题&初赛真题精讲
- 第25课 CSP-J大纲知识专题&初赛真题精讲
- 第26课 CSP-J大纲知识专题&初赛真题精讲
- 第27课 CSP-J大纲知识专题&初赛真题精讲
- 第28课 CSP-J大纲知识专题&初赛真题精讲
- 第29课 CSP-J大纲知识专题&初赛真题精讲
- 第30课 CSP-J大纲知识专题&初赛真题精讲
- 第31课 CSP-J大纲知识专题&初赛真题精讲
- 第32课 CSP-J大纲知识专题&初赛真题精讲
- 第33课 CSP-J大纲知识专题&初赛真题精讲
- 第34课 CSP-J大纲知识专题&初赛真题精讲
- 第35课 CSP-J大纲知识专题&初赛真题精讲
- 第36课 CSP-J大纲知识专题&初赛真题精讲
- 第37课 CSP-J大纲知识专题&初赛真题精讲
- 第38课 CSP-J大纲知识专题&初赛真题精讲
- 第39课 CSP-J大纲知识专题&初赛真题精讲
- 第40课 CSP-J大纲知识专题&初赛真题精讲
- 7月份课程直播回放
- 第1课 CSP-J初赛试题分析精讲试学
- 第2课 CSP-J复赛试题分析精讲试学
- 第3课 CSP-J初赛试题分析精讲试学
- 第4课 CSP-J复赛试题分析精讲试学
- 第5课 CSP-J初赛试题分析精讲
- 第6课 CSP-J复赛试题分析精讲
- 第7课 CSP-J初赛试题分析精讲
- 第8课 CSP-J复赛试题分析精讲
- 第9课 CSP-J初赛试题分析精讲
- 第10课 CSP-J复赛试题分析精讲
- 第11课 CSP-J初赛试题分析精讲
- 第12课 CSP-J复赛试题分析精讲
- 第13课 CSP-J初赛试题分析精讲
- 第14课 CSP-J复赛试题分析精讲
- 第15课 CSP-J初赛试题分析精讲
- 第16课 CSP-J复赛试题分析精讲
- 第17课 CSP-J初赛试题分析精讲
- 第18课 CSP-J复赛试题分析精讲
- 第19课 CSP-J初赛试题分析精讲
- 第20课 CSP-J复赛试题分析精讲
- 第21课 CSP-J初赛试题分析精讲
- 第22课 CSP-J复赛试题分析精讲
- 第23课 CSP-J初赛试题分析精讲
- 第24课 CSP-J复赛试题分析精讲
- 第25课 CSP-J初赛试题分析精讲
- 第26课 CSP-J复赛试题分析精讲
- 第27课 CSP-J初赛试题分析精讲
- 第28课 CSP-J复赛试题分析精讲
- 第29课 CSP-J初赛试题分析精讲
- 第30课 CSP-J复赛试题分析精讲
- 第31课 CSP-J初赛试题分析精讲
- 第32课 CSP-J复赛试题分析精讲
- 第33课 CSP-J初赛试题分析精讲
- 第34课 CSP-J复赛试题分析精讲
- 第35课 CSP-J初赛试题分析精讲
- 第36课 CSP-J复赛试题分析精讲
- 第37课 CSP-J初赛试题分析精讲
- 第38课 CSP-J复赛试题分析精讲
第2课 CSP-J大纲知识专题&初赛真题精讲
视频时长:57:50播放快捷键
播放/暂停:空格(或鼠标单击) 全屏:F(或鼠标双击) 退出全屏:Esc
快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→
快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←
本节课讲解配套PPT&板书:









本节课讲解到的源代码
源代码下载:第2课 CSP-J大纲知识专题&初赛真题精讲-源代码下载
1. 图-邻接表-1
#include <bits/stdc++.h>
using namespace std;
char data[] = {'A', 'B', 'C', 'D'};
vector<int> g[4]; // 邻接表实现
bool vis[4];
void dfs(int u)
{
cout << data[u] << ' ';
vis[u] = true;
// dfs u的邻接点
// g[u] vector中
for (int j = 0; j < g[u].size(); j ++)
{
int v = g[u][j];
if (!vis[v])
dfs(v);
/*
if (!vis[g[u][j]])
dfs(g[u][j]);
*/
}
}
bool inq[4];
void bfs(int u)
{
queue<int> q;
q.push(u);
inq[u] = true;
while (!q.empty())
{
int u1 = q.front();
q.pop();
cout << data[u1] << ' ';
// g[u1]
for (int j = 0; j < g[u1].size(); j ++)
{
// int v = g[u1][j];
if (!inq[g[u1][j]])
{
q.push(g[u1][j]);
inq[g[u1][j]] = true;
}
}
}
}
void addEdge(int u, int v)
{
g[u].push_back(v);
g[v].push_back(u);
}
int main()
{
// 构建图
g[0].push_back(1);
g[0].push_back(3);
g[1].push_back(0);
g[1].push_back(2);
g[1].push_back(3);
g[2].push_back(1);
g[2].push_back(3);
g[3].push_back(0);
g[3].push_back(1);
g[3].push_back(2);
// 打印邻接表
for (int i = 0; i < 4; i ++)
{
// g[i]
cout << i << "->";
for (int j = 0; j < g[i].size(); j ++)
cout << g[i][j] << ' ';
cout << endl;
}
cout << endl;
dfs(0); // A B C D
cout << endl;
bfs(0); // A B D C
return 0;
}
2. 图-邻接表-2
#include <bits/stdc++.h>
using namespace std;
char data[] = {'A', 'B', 'C', 'D'};
// 链表节点
// 边节点 EdgeNode Node
// 以边为核心
struct Edge {
int to; // 边的终点 指向的节点编号,邻接点编号u -> v 代表的是v
// int w;
int nxt; // 指向下一个Edge节点
};
const int M = 1000;
Edge e[M];
int cnt = 1; // 分配链表节点空间
int head[N]; // 节点的链表头数组, head[1] 代表节点编号1的链表头索引(指针)
// 构建u的(邻接表)链表 - 头插法
// 只增加一条边
void addEdge(int u, int v)
{
int cur = cnt++; // 给v节点分配空间
e[cur].to = v;
// 链接到u的链表中,头插法
e[cur].nxt = head[u];
head[u] = cur;
}
void dfs(int u)
{
}
void bfs(int u)
{
}
int main()
{
addEdge(0, 1);
addEdge(0, 3);
addEdge(1, 0);
addEdge(1, 2);
addEdge(1, 3);
addEdge(2, 1);
addEdge(2, 3);
addEdge(3, 0);
addEdge(3, 1);
addEdge(3, 2);
// 打印邻接表(链表)
return 0;
}
本节课无课后练习
本节课答疑
建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习
陈远龙老师视频讲解:如何使用DeepSeek进行答疑?
通过AI未能获得满意解答的,可以联系陈远龙老师答疑
目录