精华内容
下载资源
问答
  • 整个视频打包下载地址:史上最全的数据结构视频教程系列分享之《数据结构C++ 复旦大学》,转载请保留出处和链接! 更多优秀资源请访问:我是码农 数据结构是计算机科学与技术专业、计算机信息管理与应用专业,...

    整个视频打包下载地址:史上最全的数据结构视频教程系列分享之《数据结构C++ 复旦大学》,转载请保留出处和链接!
    更多优秀资源请访问:我是码农

    image.png

    数据结构是计算机科学与技术专业、计算机信息管理与应用专业,电子商务等专业的基础课,是十分重要的核心课程,所有的计算机系统软件和应用软件都要用到各种类型的数据结构。数据结构C++复旦大学视频教程是复旦大学计算机专业知名教授王宇君主讲的,内容具体详实,知识点全面,讲解生动细致,主要内容包括:数据结构概论、数组和广义表、串的操作与KMP算法、链表、栈和队列、树和二叉树、图、排序、散列和数据结构复习总结等。


    01数据结构的定义和分类、为什么学习数据结构

    点击下载    提取码:na23


    02算法性能分析与度量、时间复杂度和空间复杂度

    点击下载    提取码:761n


    03数组的存储方式、顺序表的操作

    点击下载    提取码:2ubc


    04串的基本操作、KMP算法的基本思想与匹配过程

    点击下载    提取码:5sfv


    05单链表的特点、插入和删除操作

    点击下载    提取码:8im5


    06带头结点的单链表、静态链表的结构

    点击下载    提取码:rsyq


    07循环链表类的定义、利用循环链表求解约瑟夫问题

    点击下载    提取码:p3tr


    08双向循环链表的搜索、插入和删除算法

    点击下载    提取码:2bwt


    09-1栈的定义、多栈处理、栈浮动技术、队列

    点击下载    提取码:q9me


    09-2顺序栈、链式栈、循环队列、优先级队列

    点击下载    提取码:31v2


    10链式栈、递归、汉诺塔问题

    点击下载    提取码:tg6m


    11迷宫问题的递归算法和非递归算法、算法框架

    点击下载    提取码:3ujx


    12广义表的定义、特性和表示

    点击下载    提取码:7vqr


    13广义表的结点定义、存储表示、求深度操作

    点击下载    提取码:4w85


    14广义表的链表结构、树和森林的概念、二叉树的性质

    点击下载    提取码:gxfc


    15二叉树的链表表示、结点定义、遍历

    点击下载    提取码:ixgj


    16二叉树的层次遍历、线索化二叉树及其二叉链表表示

    点击下载    提取码:dcxk


    17二叉树的建立和操作、线索化、堆的定义

    点击下载    提取码:zaud


    18堆的插入和调整算法、树的定义和存储表示

    点击下载    提取码:tgsu


    19森林与二叉树的转换、哈夫曼编码

    点击下载    提取码:yst5


    20集合的概念与操作

    点击下载    提取码:zg2x


    21确定等价类的链表方法和并查集方法

    点击下载    提取码:s9vt


    22二叉搜索树的定义、建立、插入、删除、搜索

    点击下载    提取码:ew6q


    23AVL树、平衡二叉搜索树、平衡化旋转

    点击下载    提取码:x66q


    24AVL树的插入和删除、图的存储表示

    点击下载    提取码:61xj


    25邻接矩阵、邻接表、逆邻接表、深度优先搜索

    点击下载    提取码:e21k


    26图的广度优先搜索、重连通分量、最小生成树

    点击下载    提取码:ta7p


    27克鲁斯卡尔算法、普利姆算法、活动网络

    点击下载    提取码:iv4g


    28拓扑排序的基本过程、关键路径

    点击下载    提取码:y8df


    29插入排序、希尔排序、冒泡排序

    点击下载    提取码:dkqr


    30快速排序、锦标赛排序、堆排序

    点击下载    提取码:prhd


    31归并排序、基数排序

    点击下载    提取码:svfy


    32k路归并、提高外排序效率的方法、败者树

    点击下载    提取码:m9if


    33并行操作的缓冲区处理、归并树、索引结构和散列

    点击下载    提取码:hfdi


    34数据结构习题分析与解答1

    点击下载    提取码:simj


    35数据结构习题分析与解答2

    点击下载    提取码:3dxu


    36数据结构期末复习一

    点击下载    提取码:nac7


    37数据结构期末复习二

    点击下载    提取码:nvg3


    38数据结构期末复习三

    点击下载    提取码:awqb


    39数据结构复习1

    点击下载    提取码:aiby


    40数据结构复习2

    点击下载    提取码:xryf


    41数据结构复习3

    点击下载    提取码:pmmp


    展开全文
  • 数据结构C++版(全41讲) 复旦大学 本科视频教程 数据结构C++版(全41讲) 复旦大学 本科视频教程 数据结构C++版(全41讲) 复旦大学 本科视频教程 下载地址:百度网盘 ...

    数据结构C++版(全41讲) 复旦大学 本科视频教程

     

    数据结构C++版(全41讲) 复旦大学 本科视频教程

     

    数据结构C++版(全41讲) 复旦大学 本科视频教程

     

    下载地址:百度网盘

    展开全文
  • 可持久化数据结构c++

    千次阅读 2019-01-01 09:54:30
    可持久化数据结构的原理在于,每次修改创造一个新节点作为根,对修改部分再创一条链,对于未修改部分直接连向上次修改连向的位置,这样,就可以在较小的空间存储每次修改时的状态. 以可持久化字典树为例 如果我们要...

    可持久化数据结构的原理在于,每次修改创造一个新节点作为根,对修改部分再创一条链,对于未修改部分直接连向上次修改连向的位置,这样,就可以在较小的空间存储每次修改时的状态.

    以可持久化字典树为例

    如果我们要加入cat,cap,rat,cute,等词

    第一步

    在这里插入图片描述
    然后,再插入第二个单词
    在这里插入图片描述
    可以看到,新建一棵树存当前的词,然后连向之前已经有过的树
    第三第四个单词
    在这里插入图片描述
    在这里插入图片描述

    以上就是可持久化字典树的内容

    可持久化线段树同理

    每次修改添加一条,剩下的直接连向之前的

    在这里插入图片描述

    可持久化字典树 例题

    最大异或和( https://www.luogu.org/problemnew/show/P4735 ) 洛谷P4735

    题目详解

    每次将前缀和的二进制形式加入到0/1字典树中

    询问时优先询问与某关键值(x^s[N])相反的路径

    从高位到低位存储和询问

    因为0/1字典树是二叉的,所以连向上一段的已有子树可以直接连接

    数组解释

    int trie[MAXN*24][2],latest[MAXN*24];//字典树;当前结点向下传递的最后一个前缀和的位置编号
    //位置编号就是指插入的顺序编号
    int s[MAXN],root[MAXN],N,M,tot;//前缀和;根据更改先后变化的根节点
    

    以下是插入操作

    void insert(int i,int k,int p,int q)//第i个前缀和,二进制从低到高第k位,p为上一段同深度端点,q为当前端点
    {
    	if(k<0) {latest[q]=i;return;}
    	int c=s[i]>>k&1;
    	if(p) trie[q][c^1]=trie[p][c^1];//如果上一段有平行的对应结点则连接
    	trie[q][c]=++tot;//新建结点
    	insert(i,k-1,trie[p][c],trie[q][c]);//插入下一个结点
    	latest[q]=max(latest[trie[q][0]],latest[trie[q][1]]);//向下最大的末位前缀和位置编号
    }
    

    以下是完整代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define R Rein()
    #define lR lRein()
    #define ll long long int
    #define ri register int
    inline int R{int x=0,f=1;char c=getchar();while(c<'0'||c>'9')if(c=='-') f=-1,c=getchar();else c=getchar();while(c<='9'&&c>='0')x=10*x+c-'0',c=getchar();return f*x;}
    inline ll lR{ll x=0,f=1;char c=getchar();while(c<'0'||c>'9')if(c=='-') f=-1,c=getchar();else c=getchar();while(c<='9'&&c>='0')x=10*x+c-'0',c=getchar();return f*x;}
    using namespace std;
    const int DEVIATION=10;
    const int MAXN=3e5+DEVIATION;
    int trie[MAXN*24][2],latest[MAXN*24];
    int s[MAXN],root[MAXN],N,M,tot;
    void insert(int i,int k,int p,int q)
    {
    	if(k<0) {latest[q]=i;return;}
    	int c=s[i]>>k&1;
    	if(p) trie[q][c^1]=trie[p][c^1];
    	trie[q][c]=++tot;
    	insert(i,k-1,trie[p][c],trie[q][c]);
    	latest[q]=max(latest[trie[q][0]],latest[trie[q][1]]);
    }
    int ask(int now,int val,int k,int limit)
    {
    	if(k<0) return s[latest[now]]^val;
    	int c=val>>k&1;
    	if(latest[trie[now][c^1]]>=limit)
    		return ask(trie[now][c^1],val,k-1,limit);
    	else
    		return ask(trie[now][c],val,k-1,limit);
    }
    int main()
    {
    	N=R,M=R;
    	latest[0]=-1;
    	root[0]=++tot;
    	insert(0,23,0,root[0]);
    	for(ri i=1;i<=N;i++)
    		s[i]=s[i-1]^R,
    		root[i]=++tot,
    		insert(i,23,root[i-1],root[i]);
    	for(ri i=1;i<=M;i++)
    	{
    		char op[2];scanf("%s",op);
    		if(op[0]=='A')
    			root[++N]=++tot,
    			s[N]=s[N-1]^R,
    			insert(N,23,root[N-1],root[N]);
    		else
    		{
    			int l=R,r=R,x=R;
    			printf("%d\n",ask(root[r-1],x^s[N],23,l-1));
    		}
    	}
    	return 0;
    }
    
    展开全文
  • 数据结构C++语言描述:应用标准模板库STL(第2版)电子书pdf下载链接: https://pan.baidu.com/s/1G0aWa_7hrjK9vSHkaJ_Zlg 提取码获取方式:关注下面微信公众号,回复关键字:1180 ...

    数据结构C++语言描述:应用标准模板库STL(第2版)电子书pdf下载链接:

    https://pan.baidu.com/s/1G0aWa_7hrjK9vSHkaJ_Zlg

    提取码获取方式:关注下面微信公众号,回复关键字:1180

    展开全文
  • 数据结构c++实现——图

    千次阅读 2019-04-18 22:34:00
    各种模板类的数据抽象: 步骤示意: 递归过程: 要创建的图以及对应的邻接表: 代码实现: //graph.h #ifndef GRAPH_H #define GRAPH_H #include <string> template<typename T> class ...
  • 数据结构C++单链表的实现

    千次阅读 2017-04-01 14:12:59
    因为现在的工作经常要看源码,而源码里面经常也会有数据结构里面的知识,比如说,handler 相关的消息出队和入队。所以打算写个一系列的文章帮助自己加深印象。一、单链表介绍 单链表的每一个节点由数据域和指针域...
  • 存储淘汰赛的比赛信息,创建表示比赛过程的满二叉树,保存比赛结果
  • BinaryNode* search(T key) //查找先根次序遍历首次出现的关键字为key结点,T重载==
  • 标题: 迷宫问题 时 限: 100000 ms 内存限制: 100000 K 总时限: 3000 ms 描述: 迷宫问题 迷宫是一个二维矩阵,其中1为墙,0为路,3为入口,4为出口.要求从入口开始,从出口结束,按照 下,左,上,右 的顺序来搜索...
  • 如何声明一个Operators运算符集合类,提供运算符及其优先级,按优先级比较运算符大小的函数,两个操作数进行指定运算的函数等 还有如何将一个表达式以前缀表达式构造,用递归算法
  • SinglyList<T>& operator*=(SinglyList<T> &list) //仅保留那些也包含在list中的元素,集合交
  • 求n个正整数阶乘的递归算法(得体现出栈在函数调用中的作用),求源程序
  • 2、存储结构可用顺序二叉树也可用二叉链表。 3、带有软件系统界面主函数main,功能完整(如:用户选择1开始游戏并随机抽取扑克牌;用户选择0退出执行程序;用户选择1后有两个选择,1为开始出本回合牌,2为不出牌;...
  • 数据结构C++实验之稀疏矩阵乘法

    千次阅读 2017-12-16 17:41:35
    template TSMatrix<T> TSMatrix<T>:: operator*(TSMatrix<T> s){ if(colNum != s.rowNum) return *this; int total = colNum*s.rowNum; Triple* tmp = new Triple[total]; int ptr = 0;
  • 数据结构C++算法实现1 - 合并两序列

    千次阅读 2013-10-02 14:33:35
    本人开辟一个专栏,把严蔚敏 数据结构 这本书上的算法和数据结构C++实现,网上和她书本光盘也带了C的实现方法,但是其实对于初学者来说真不是那么好自己运行看结构,和自己去修改“玩”的。 本人觉得写程序的能力...
  • CirSinglyList<T>& operator+=(CirSinglyList<T> &list) //尾插入list,集合并
  • 什么是数据结构一些基本概念:数据、数据对象、数据元素、数据结构、数据类型、抽象数据类型 数据(data)是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,308
精华内容 24,123
关键字:

数据结构c++

c++ 订阅
数据结构 订阅