精华内容
下载资源
问答
  • 数据结构 的邻接表
    万次阅读 多人点赞
    2018-05-08 20:46:32

    呃,下面该写邻接表了.......

    邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。

    邻接表为了避免内存的浪费引入了链式存储,它的处理办法是:

    1.用一个一维数组存储顶点,当然你也可以用单链表存储,

    2.用单链表存储顶点的邻接点,可以将顶点改为结构体数组,结构体中存放邻接点的指针,邻接点也创建一个结构体,定义指针next存放该顶点的另一个邻接点,这样就可以把该顶点的所有邻接点串起来了。

    下面是一个无向的网图:

    邻接表中数据的存储图示如下(emmm,无向图果然没有有向图好画):

    emmm,终于画完了,我来介绍下这个图

    顶点表也就是个结构体数组,是存放顶点的结构,顶点表中有data元素,存放顶点信息  firstarc是一个边结构体表指针,存放邻接点的信息。

    边表也是一个结构体,内有adivex元素,存放邻接点的下标,weight存放顶点与邻接点之间线的权重,next是边表结构体指针,存放该顶点的下一个邻接点,next就是负责将顶点的邻接点连起来。

    看着上面的图慢慢理解吧!

    下面则是代码部分:

    #include <iostream>
    using namespace std;
    
    #define MAXVERTEX 100   //最大顶点数
    typedef char vertextype;    //定义顶点的存储类型
    typedef int arctype;    //定义边的权值类型
    
    typedef struct ArcNode  //边表节点
    {
        int adjvex; //邻接点域,存储该顶点对应的下标
        arctype wigth;  //用于存储权值
        struct ArcNode *next; //链域,指向下一个邻接点
    }ArcNode;
    
    typedef struct VertexNode   //顶点表节点
    {
        vertextype data;    //存储顶点数据的信息
        ArcNode *firstarc;  //边表头指针
    }VertexNode, AdjList[MAXVERTEX];
    
    typedef struct
    {
        AdjList adjlist;    //定义邻接表
        int numvertex;  //当前邻接表的顶点数
        int numarc; //当前邻接表的边数
    }GraphAdjList;
    
    //建立图的邻接表
    void CreateAdjListGraph(GraphAdjList &G)
    {
        ArcNode *e;
        cin >> G.numvertex; //输入当前图的顶点数
        cin >> G.numarc;    //输入当前图的边数
        for(int i = 0; i < G.numvertex; i++)    //建立顶点表
        {
            cin >> G.adjlist[i].data;   //输入顶点信息
            G.adjlist[i].firstarc = NULL;   //将表边指针置为空
        }
        for(int k = 0; k < G.numarc; k++)
        {
            int i, j, w;
            cin >> i >> j >> w; //输入边两边的顶点和边上的权重
            e = new ArcNode;   //创建一个表边节点指针
            e->adjvex = j;
            e->wigth = w;
            e->next = G.adjlist[i].firstarc;
            G.adjlist[i].firstarc = e;
            //因为是无向图,彼此相对称
            e = new ArcNode;   //创建一个表边节点指针
            e->adjvex = i;
            e->wigth = w;
            e->next = G.adjlist[j].firstarc;
            G.adjlist[j].firstarc = e;
        }
    }
    
    //打印邻接表
    void PrintfGraphAdjList(GraphAdjList G)
    {
        for(int i = 0; i < G.numvertex; i++)
        {
            ArcNode *p = G.adjlist[i].firstarc;
            cout << G.adjlist[i].data << '\t';
            while(p)
            {
                cout << p->adjvex << ' ' << p->wigth << '\t';
                p = p->next;
            }
            cout << endl;
        }
    }
    int main()
    {
        GraphAdjList G;
        CreateAdjListGraph(G);
        PrintfGraphAdjList(G);
        return 0;
    }
    


    邻接表的时间复杂度:n为顶点数,e为边数 O(n + e)……

     

    运行结果(根据上图的信息输入):

     

     

    更多相关内容
  • 数据结构图和树的区别_树和图数据结构之间的区别

    千次阅读 多人点赞 2020-09-14 04:43:21
    数据结构图和树的区别In this tutorial you will learn about the difference between tree and graph. 在本教程中,您将了解树和图之间的区别。 Both trees and graphs are two well known mostly used data ...

    数据结构图和树的区别

    In this tutorial you will learn about the difference between tree and graph.

    在本教程中,您将了解树和图之间的区别。

    Both trees and graphs are two well known mostly used data structures in algorithms.

    树和图都是算法中两个众所周知的最常用的数据结构。

    Tree Data Structure

    树数据结构

    In Computer science, a tree is a widely used Abstract Data Structure (ADT). It can be defined recursively as a collection of nodes, where each node contains a value, starting with root node and list of references to other nodes (children), with the constraint, that no reference from it, is called leaf node.

    在计算机科学中,树是被广泛使用的抽象数据结构(ADT)。 可以将其递归定义为节点的集合,其中每个节点都包含一个值,该值从根节点开始,到对其他节点(子级)的引用列表,但有一个约束,即没有来自该节点的引用称为叶节点。

    Graph Data Structure

    图形数据结构

    In Computer science, graph also an abstract data structure (ADT), that is mean to implement undirected graph and directed graph concepts of mathematics especially the field of graph theory. Graph is a mathematical representation of a set of objects and relationships or links between objects. We represent objects as nodes or vertices in graph and relations between vertices as edges or arcs. So, we can define that graph is set of vertices V and set of edges E. These edges may be directed or undirected.

    在计算机科学中,图形也是一种抽象数据结构(ADT),它旨在实现数学的无向图和有向图概念,尤其是图论领域。 图是一组对象以及对象之间的关系或链接的数学表示。 我们将对象表示为图中的节点或顶点,并将顶点之间的关系表示为边或弧。 因此,我们可以定义图是由顶点V和边E组成的。这些边可以是有向的也可以是无向的。

    Now let’s see what are the differences between graph and tree in tabular form.

    现在,让我们看看表格形式的图和树之间的区别是什么。

    树和图之间的区别 (Difference between Tree and Graph)

    TreesGraphs
    1. A tree is a special kind of graph that there are never multiple paths exist. There is always one way to get from A to B.1. A graph is a system that has multiple ways to get from any point A to any other point B.
    2. Tree must be connected.2. Graph may not be connected.
    3. Since it connected we can reach from one particular node to all other nodes. This kind of searching is called traversal.3. Traversal always not applicable on graphs. Because graphs may not be connected.
    4. Tree contains no loops, no circuits.4. Graph may contain self-loops, loops.
    5. There must be a root node in tree.5. There is no such kind of root node in graphs
    6. We do traversal on trees. That mean from a point we go to each and every node of tree.6. We do searching on graphs. That means starting from any node try to find a particular node which we need.
    7. pre-order, in-order, post-order are some kind of traversals in trees.7. Breath first search, Depth first search, are some kind of searching algorithms in graphs.
    8. Trees are directed acyclic graphs.8. Graphs are cyclic or acyclic.
    9. Tree is a hierarchical model structure.9. Graph is network model.
    10. All trees are graphs.10. But all graphs are not trees.
    11. Based on different properties trees can be classified as Binary tree, Binary search tree, AVL trees, Heaps.11. We differ the graphs like directed graphs and undirected graphs.
    12. If tree have “n” vertices then it must have exactly “n-1” edges only.12. In graphs number of edges doesn’t depend on the number of vertices.
    13. Main use of trees is for sorting and traversing.13. Main use of graphs is coloring and job scheduling.
    14. Less in complexity compared to graphs.14. High complexity than trees due to loops.
    树木 图表
    树是一种特殊的图,它永远不会有多个路径。 从A到B总是有一种方法。 图是一种具有多种方法来从任何点A到达任何其他点B的系统。
    2.必须连接树。 2.可能未连接图形。
    3.由于它已连接,所以我们可以从一个特定节点到达所有其他节点。 这种搜索称为遍历。 3.遍历始终不适用于图形。 因为图形可能未连接。
    4.树不包含回路,电路。 4.图可能包含自循环,循环。
    5.树中必须有一个根节点。 5.图中没有这种根节点
    6.我们在树上遍历。 这意味着从某个角度出发,我们进入树的每个节点。 6.我们在图上进行搜索。 这意味着从任何节点开始尝试找到我们需要的特定节点。
    7.前序,有序,后序是树中的某种遍历。 7. 呼吸优先搜索深度优先搜索是图形中的某种搜索算法。
    8.树是有向无环图。 8.图是循环的或非循环的。
    9.树是一个分层的模型结构。 9.图是网络模型。
    10.所有树都是图。 10.但是所有图形都不是树。
    11.根据不同的属性,树可以分为二叉树,二叉搜索树,AVL树,堆。 11.我们区别于有向图和无向图之类的图。
    12.如果树具有“ n”个顶点,则它必须仅具有精确的“ n-1”条边。 12.在图中,边的数量不取决于顶点的数量。
    13.树木的主要用途是进行分类和遍历。 13.图形的主要用途是着色和作业计划。
    14.与图形相比,复杂度更低。 14.由于循环,比树要复杂。

    (Example)

    Tree:

    树:

    Tree Data Structure

    Graph:

    图形:

    Graph Data Structure

    Comment below if you have queries or found any information incorrect in above tutorial for difference between tree and graph data structure.

    如果您有疑问或在以上教程中发现任何信息不正确,请在下面评论,以区别树和图数据结构。

    翻译自: https://www.thecrazyprogrammer.com/2017/08/difference-between-tree-and-graph.html

    数据结构图和树的区别

    展开全文
  • 数据结构 的邻接矩阵

    万次阅读 多人点赞 2018-05-07 21:19:59
    的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,一个二维数组存储线(无向)或弧(有向)的信息。设G有n个顶点,则邻接矩阵是一个n × n的方阵,定义为:无向的邻接矩阵,两个顶点...

    图的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,一个二维数组存储线(无向图)或弧(有向图)的信息。

    设图G有n个顶点,则邻接矩阵是一个n × n的方阵,定义为:

    无向图的邻接矩阵,两个顶点有边则为1,否则,为0;因为是无向图arc[i][j] = arc[j][i],所以矩阵为对称矩阵,对角线为自己到自己的边,邻接矩阵中,行之和或者列之和都为各顶点度的总数。

    设图G有是网图,有n个顶点,则邻接矩阵是一个n × n的方阵,定义为:



    无向网图和无向图差不多,就是加了权值,两个顶点之间无边的话距离是∞。

    如果是有向图,邻接矩阵就不是对称矩阵了。

    下面是邻接矩阵的存储结构:

    #define MAXVERTEX 100   //图的最大顶点数
    #define INFINITY 32767  //用有符号的int最大值表示无穷大
    typedef char vertextype;    //定义定点的存储信息为字符型
    typedef int arctype;    //定义边的权值为int型
    
    //图的邻接矩阵的存储结构
    typedef struct
    {
        vertextype vertex[MAXVERTEX];   //顶点表
        arctype arc[MAXVERTEX][MAXVERTEX];  //邻接矩阵
        int vertexnum;  //图的当前顶点数
        int arcnum; //图的当前边数
    }MGraph;

    存储结构里面主要由四部分构成,

    第一部分是一个一维数组存储的是顶点信息,

    第二部分是邻接矩阵由二维数组组成,存储着各顶点彼此之间的关系,

    第三部分和第四部分分别是当前图的顶点数和线数。

    下面是具体的代码实现(注释的很详细了):

    #include <iostream>
    using namespace std;
    
    #define MAXVERTEX 100   //图的最大顶点数
    #define INFINITY 32767  //用有符号的int最大值表示无穷大
    typedef char vertextype;    //定义定点的存储信息为字符型
    typedef int arctype;    //定义边的权值为int型
    
    //图的邻接矩阵的存储结构
    typedef struct
    {
        vertextype vertex[MAXVERTEX];   //顶点表
        arctype arc[MAXVERTEX][MAXVERTEX];  //邻接矩阵
        int vertexnum;  //图的当前顶点数
        int arcnum; //图的当前边数
    }MGraph;
    
    //创建无向网
    void CreateMGraph(MGraph &G)
    {
        cin >> G.vertexnum; //输入顶点数目
        cin >> G.arcnum;    //输入边数
        for(int i = 0; i < G.vertexnum; i++)    //输入顶点信息
            cin >> G.vertex[i];
        for(int i = 0; i < G.vertexnum; i++)    //将所有边初始化为无穷大
            for(int j = 0; j < G.vertexnum; j++)
                G.arc[i][j] = INFINITY;
        for(int k = 0; k < G.arcnum; k++)
        {
            int i, j, w;
            cin >> i >> j;  //输入构成边的两个顶点
            cin >> w;   //输入边所对应的权值
            G.arc[i][j] = w;
            G.arc[j][i] = G.arc[i][j];  //无向图的邻接矩阵为对称矩阵
        }
    }
    
    //打印邻接矩阵
    void PrintfMGraph(MGraph G)
    {
        for(int i = 0; i < G.vertexnum; i++)
        {
            for(int j = 0; j < G.vertexnum; j++)
                cout << G.arc[i][j] << '\t';
            cout << endl;
        }
    }
    
    //主函数
    int main()
    {
        MGraph G;
        CreateMGraph(G);
        PrintfMGraph(G);
        return 0;
    } 
    

    邻接矩阵的时间复杂度为O(n +  n^2 + e),其中n为顶点数,e为边数,去掉低阶和系数后,变为O(n^2)。

    运行结果(根据上面第二个图输入的数据):




    展开全文
  • 画linux内核文件系统结构图、内存分配以及学习数据结构树、图时,发现使用Graphviz非常的方便快捷。鉴于网上关于它的安装、使用不是特别具体,本博文将一步步告诉大家如何快速地使用Graphviz画相关的流程图、树形图...

             

    我们画常规图形时一般用word上面自带的插件或visio画图。但是我在画linux内核文件系统结构图、内存分配以及学习数据结构树、图时,发现使用Graphviz非常的方便快捷。鉴于网上关于它的安装、使用不是特别具体,本博文将一步步告诉大家如何快速地使用Graphviz画相关的流程图、树形图等。

    1.安装Graphviz

    在官网上面下载相关文件,地址:http://www.graphviz.org/Download..php。如果遇到官网进不去,可以等待一旦时间或者在网上直接搜索下载。

    Linux安装命令为sudo apt-get install graphviz 。下面以Windows为例:


    点击进入之后,下载后缀为.msi的文件。笔者下载的为graphviz-2.38.msi.


    特别说明:安装完毕,在桌面可能不会出现快捷方式,不要以为自己没有安装成功。这时候我们可以在安装源目录里面找出来或者在所有程序里面把它搜索出来。建议第一种方法找到之后,右键建立快捷方式。



     

    点击 gvedit.exe之后出现这个界面,其中那个跑步的为运行按钮

    2. 如何使用Graphviz

    2.1 学习官方例程

    为了方便大家之后能够快速入门,这里我采用官网上面的源代码,官网上面例子很多。大家可以按需学习。例程官网地址:http://www.graphviz.org/Gallery.php



    2.2查看例程源代码

    这里以第二个例程源代码crazy为例,先点击图片进入。


    之后可以看到指示,点击图片即可看见到源代码。

    2.3建立工程,输出图像

    先点击最左侧像书页的图标,在GVEdit上面的新建.gv文件,将上面获取的代码,粘贴进去,点击跑步按钮,即可生成所需图像。


    附带一个简单的小例子,便于大家测试:

    源代码:

    digraph 1{

      node[shape="record"];

      edge[style="dashed"];

      

      a[style="filled",color="red",fillcolor="chartreuse"];

      b;

      c;

      d;

      a ->b;

      b ->d;

      c ->d[color="green"];

            d-> a;

    }


    到这里之后,如下的就是自己发挥空间,自己可以根据上面官网提供的代码进行学习。官网上面一些常见的图形都涉及都了,其他的结合dot脚步语言学习。

    3.      参考资料

    网上很多资料,这里笔者推荐Graphviz中文教程指南,网上有下载,CSDN上面下载地址:http://download.csdn.net/download/u010415192/9219945

     

      

     

    展开全文
  • 软件工程:数据流图和结构图怎么画?

    万次阅读 多人点赞 2020-09-01 18:43:03
    文章目录Step 1:根据软件的功能描述,绘制数据流图:Step 2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合: Step 1:根据软件的功能描述,绘制数据流图: 问题表述: ...
  • 数据结构图---拓扑结构

    千次阅读 2019-05-28 09:31:14
    数据结构图---拓扑结构 【1】拓扑排序 在一个表示工程的有向图中,有顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称为AOV网。 AOV网中的弧表示活动之间存在的某种制约关系...
  • java实现数据结构图g(graph)的创建

    万次阅读 2018-04-18 22:11:04
    java实现数据结构图g(graph)的创建,以以下图片中图为例(来自于大话数据结构): 顶点数是5,定义无穷大为MAX用以较大整数代替;创建图的代码和思路如下所示: package graph;//自己代码定义的包名 import ...
  • 数据结构的创建

    万次阅读 多人点赞 2018-01-21 14:24:13
    1.的定义 (Graph):是由顶点的又穷非空集合和定点之间的边集组成,通常表示为G(V,E),其中G表示一个,V是其顶点集合,E是其边集合。 有向(Directed graphs): 任意两个点之间的边都是有...2.的存储结构 常见
  • 数据结构的基本介绍

    万次阅读 2020-06-29 14:37:32
    (Graph)是一种数据结构,由顶点(vertex)和边(edge)组成,通常表示为G=(V,E): G:表示一个 V:表示中顶点的集合,顶点集V有穷且非空 E: 表示中边的集合,边集E可以是空的 边:两个顶点之间的连接。 ...
  • 数据结构结构的实现

    万次阅读 多人点赞 2018-02-07 19:44:45
    是一种很重要的数据结构,不解释。
  • 数据结构 的思维导图

    千次阅读 2020-05-04 16:08:06
    目录 的基本概念 的基本操作 的储存表示 的遍历 最小生成树 拓扑排序 关键路径 最短路径 思维导图
  • 数据结构图题库

    千次阅读 2018-08-01 16:51:34
    1、有向G如下所示,请写出所有拓扑排序序列。所有的顶点都直接用其数字标号表示,如拓扑排序序列为,那么请写成1234(中间没有空格)。不同的拓扑排序序列按照字典序排序,中间用一个空格隔开。 解析: 根据...
  • 数据结构(Graph)【详解】

    万次阅读 多人点赞 2021-02-26 17:03:48
    【知识框架】 【考纲内容】 的基本概念 的存储及基本操作 邻接矩阵法;邻接表法;邻接多重表;...的遍历 ...的基本应用 ...的基本概念 在线性表中,数据元素之间是被串...是一种较线性表和树更加复杂的数据结构
  • 数据结构--(Java版)

    万次阅读 多人点赞 2018-05-02 16:23:37
    线性表和树两类数据结构,线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系,本章所述的结构中的元素则是“多对多”的关系。 (Graph)是一种复杂的非线性结构,在结构中,每个元素都可以...
  • java中的数据结构——

    千次阅读 2018-10-24 09:13:06
    是一种以网络形式相互连接的节点,是一种与树有些相似的数据结构通常有一个固定的形状, 这是由物理或抽象的问题所决定的。包含由边连接的顶点。 类型,无向,有向(边有方向,通常用箭头表示) ...
  • 数据结构的定义及基本术语

    千次阅读 2018-02-26 20:59:46
    的定义是由顶点集合(Vertex)及顶点间的关系集合组成的一种数据结构:Graph=( V, E )V = {x | x ∈某个数据对象 } 是顶点的有穷非空集合;E ={ (x, y) | x, y ∈V } 是顶点之间关系的有穷集合,也叫做边(Edge)...
  • 图解!24张图彻底弄懂九大常见数据结构

    万次阅读 多人点赞 2020-05-24 22:23:36
    数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不...
  • 22计算机408考研—数据结构

    万次阅读 多人点赞 2021-11-07 19:41:42
    22考研大纲数据结构要求的是C/C++,笔者以前使用的都是Java,对于C++还很欠缺, 如有什么建议或者不足欢迎大佬评论区或者私信指出 初心是用最简单的语言描述数据结构 Talk is cheap. Show me the code. 理论到处都...
  • 《画解数据结构》九张动图,画解顺序表

    万次阅读 多人点赞 2021-08-25 08:32:05
    本文已收录于专栏 《画解数据结构》 零、前言   目前本专栏正在进行优惠活动,在博主主页添加博主好友(好友位没有满的话),可以获取 付费专栏优惠券。   这篇文章,作者将用 「 七张动图 」 来阐述一种最基础...
  • 数据结构-的基础代码

    千次阅读 2017-12-17 12:20:51
    数据结构-的基础代码
  • 数据结构(Graph)

    千次阅读 2017-06-14 10:44:47
    简单对比:(graph):是一种较线性表和树更为复杂的数据结构,图形结构中,结点之间的关系可以是任意的,中任意两个数据元素之间都可能相关 线性表:数据元素之间仅有线性关系,每个数据元素只有一个直接前驱...
  • 数据结构——(邻接链表)

    万次阅读 多人点赞 2019-07-21 21:20:44
    邻接链表 邻接矩阵是不错的⼀种存储结构,但是我们也发现,...因此选择一种新的数据结构来存储这种稀疏则尤为重要了。此时则使用链表结构来存储原来的连接信息。 定义如下数据结构 //的邻接链表存储结构 //...
  • 数据结构--知识点总结

    万次阅读 多人点赞 2017-05-25 18:57:09
    顶点(Vertex):中的数据元素。线性表中我们把数据元素叫元素,树中将数据元素叫结点。 边:顶点之间的逻辑关系用边来表示,边集可以是空的。 无向边(Edge):若顶点V1到V2之间的边没有方向,则称这条边为无向边。
  • 数据结构与算法

    万次阅读 多人点赞 2020-05-19 16:39:12
    数据结构,是指相互之间存在一种或多种特定关系的数据关系的集合,用计算机存储、组织数据的方式。 数据结构分为逻辑结构、物理结构和数据的运算三大部分。 二、为什么要学数据结构 1、因为数据结构作为计算机...
  • 数据结构实验报告:的基本操作及应用

    万次阅读 多人点赞 2019-01-30 22:45:02
    2、熟练掌握的存储结构。 3、熟练掌握的两种遍历算法。 4、掌握如何应用解决各种实际问题。 二、实验内容 题目一: 的遍历(* 必做题) 题目二:最小生成树问题(**) 题目三:拓扑排序的应用(***) ...
  • 八大数据结构及常见面试题

    千次阅读 多人点赞 2020-12-01 21:39:16
    几乎所有的问题都需要面试者对数据结构有深刻的理解。无论你是初入职场的新兵(刚从大学或者编程培训班毕业),还是拥有几十年经验的职场老鸟。 即便是对于一些非常基础的工作来说,学习数据结构也是必须的。那么,...
  • 数据结构思维导图,超全!超详细!

    千次阅读 多人点赞 2021-04-17 17:20:22
    文章目录数据结构思维导图一、数据结构基本概念二、线性表三、栈和队列四、树五、六、查找七、排序八、二叉树与树与森林 数据结构思维导图 我在一个平台(忘记了)上发现了一个博主制作的数据结构思维导图,感觉很...
  • 数据流图以及结构图

    万次阅读 2019-01-07 18:03:58
    某大学教学管理系统子系统的功能说明如下: 首先接受学生提交的学生证和申请单,根据学生档案文件检验学生证的有效性和申请单是否填写的正确,如果有误则拒绝,如果无误根据学生的...要求:用结构化方法学对教...
  • (Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V...–线性表可以没有数据元素,称为空表,树中可以没有结点,叫做空树,而图结构在咱国内大部分的教材中强调顶点集合V要有穷非空。 –...
  • 文章目录(一)数据的定义:(二)数据中的主要图形元素及符号(三)如何画数据(四)数据的层次结构1. 顶层流2. 底层流(零层)3.中间层流图数据设计原则:分层的数据(五)实践(六...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,321,434
精华内容 928,573
关键字:

数据结构图

数据结构 订阅
友情链接: RSYD99.rar