短视频直播源码,有向网的拓扑排序

简介: 短视频直播源码,有向网的拓扑排序

短视频直播源码,有向网的拓扑排序实现的相关代码如下

/*
    Author:Albert Tesla Wizard
    Time:2020/10/28 23:07
*/
#include<bits/stdc++.h>
#define OK 1
#define Error 0
#define MAXSIZE 20
using namespace std;
typedef enum{DG,UDG,DN,UDN}Grpahkind;
typedef struct ArcNode
{
    ArcNode* nextarc;
    int* info;
    int adjvertex;
};
typedef struct VNode
{
    char data;
    ArcNode* firstarc;
}VNode,AdjList[MAXSIZE];
typedef struct ALGraph
{
    AdjList vertex;
    int vertexnum,arcnum;
    int kind;
}ALGraph;
int Locate(char v,ALGraph&G)
{
    for(int i=1;i<=G.vertexnum;i++)
    {
        if(G.vertex[i].data==v)return i;
    }
    return -1;
}
int create(ALGraph&G)
{
        char c1,c2;
        int tail,head,w;
        cout<<"请输入有向网的顶点数目:"<<endl;
        cin>>G.vertexnum;
        cout<<"请输入有向网的弧的数目:"<<endl;
        cin>>G.arcnum;
        cout<<"请输入有向网的顶点集合:"<<endl;
        for(int i=1;i<=G.vertexnum;i++){cin>>G.vertex[i].data;G.vertex[i].firstarc=NULL;}
        for(int i=1;i<=G.arcnum;i++)
        {
            cout<<"请输入组成有向网的弧的两个顶点c1,c2的值及该弧权值:"<<endl;
            cin>>c1>>c2>>w;
            tail=Locate(c1,G);
            head=Locate(c2,G);
            ArcNode* p=new ArcNode;
            p->info=new int;
            *(p->info)=w;
            p->adjvertex=head;
            p->nextarc=G.vertex[tail].firstarc;
            G.vertex[tail].firstarc=p;
        }
    return OK;
}
void print(ALGraph&G)
{
    cout<<"有向网的顶点数目为:"<<G.vertexnum<<endl;
    cout<<"有向网的顶点集合为:";
    for(int i=1;i<=G.vertexnum;i++)cout<<G.vertex[i].data<<" ";
    cout<<endl;
    cout<<"有向网的弧的数目为:"<<G.arcnum<<endl;
    cout<<"有向网弧的集合为:";
        for(int i=1;i<=G.vertexnum;i++)
        {
            ArcNode* p=G.vertex[i].firstarc;
            while(p)
            {
                cout<<"<"<<G.vertex[i].data<<","<<G.vertex[p->adjvertex].data<<","<<*(p->info)<<">";
                p=p->nextarc;
            }
        }
        cout<<endl;
}
void FindInDegree(int indegree[],ALGraph G)
{
    ArcNode* p;
    for(int i=1;i<=G.vertexnum;i++)indegree[i]=0;
    for(int i=1;i<=G.vertexnum;i++)
    {
        p=new ArcNode;
        p=G.vertex[i].firstarc;
        while(p)
        {
            indegree[p->adjvertex]++;
            p=p->nextarc;
        }
    }
}
int TopologicalSort(ALGraph G)
{
    int cnt=0,indegree[MAXSIZE];//输出的顶点数
    stack<int>S;
    ArcNode* p;
    FindInDegree(indegree,G);
    for(int i=1;i<=G.vertexnum;i++)if(!indegree[i])S.push(i);
    while(!S.empty())
    {
        int j=S.top();
        S.pop();
        cout<<G.vertex[j].data<<" ";
        cnt++;
        for(p=G.vertex[j].firstarc;p;p=p->nextarc)
        {
            int k=p->adjvertex;
            if(!(--indegree[k]))S.push(k);
        }
    }
    if(cnt<G.vertexnum){cout<<"该有向网有回路"<<endl;return Error;}
    else {cout<<"为一个拓扑序列"<<endl;return OK;}
}
int main()
{
    system("color 5E");
    ALGraph G;
    create(G);
    print(G);
    TopologicalSort(G);
    return 0;
}

以上就是短视频直播源码,有向网的拓扑排序实现的相关代码, 更多内容欢迎关注之后的文章

目录
相关文章
|
9月前
|
视频直播
详解!视频直播源码平台搭建开发:录制功能
视频直播源码平台的录制功能能够为用户提供更多方便、灵活性,同时也增加了直播内容的传播和价值,这也使录制功能成为布谷科技视频直播源码平台的必备功能之一。
详解!视频直播源码平台搭建开发:录制功能
|
10月前
|
视频直播 定位技术 UED
海外视频直播源码技术视频直播间的搭建
大家听到这里是不是感觉这个源码平台非常的熟悉,没错,这个源码平台就海外视频直播源码平台,而我说的这个房间就是视频直播间,主持人就是视频直播间内的主播,今天我就为大家分享海外视频直播源码技术视频直播间的搭建。
海外视频直播源码技术视频直播间的搭建
|
10月前
|
视频直播
视频直播源码技术知识分享:连麦功能(一)
我们开发视频直播平台就要去了解视频直播开发相关功能知识,这对我们开发平台有着重要的作用,连麦技术就是视频直播源码重要的技术功能之一,每一个功能技术都有自己的用武之地
视频直播源码技术知识分享:连麦功能(一)
|
域名解析 网络协议 安全
Live555源码阅读笔记(四):groupsock 目录详解
Live555源码阅读笔记(四):groupsock 目录详解
216 0
Live555源码阅读笔记(四):groupsock 目录详解
|
存储 调度
Live555源码阅读笔记(三):BasicUsageEnvironment 目录详解-BasicTaskScheduler、DelayQueue、HandlerSet
Live555源码阅读笔记(三):BasicUsageEnvironment 目录详解-BasicTaskScheduler、DelayQueue、HandlerSet
125 0
Live555源码阅读笔记(三):BasicUsageEnvironment 目录详解-BasicTaskScheduler、DelayQueue、HandlerSet
|
调度 C++
Live555源码阅读笔记(二):UsageEnvironment 目录详解
Live555源码阅读笔记(二):UsageEnvironment 目录详解
119 0
Live555源码阅读笔记(二):UsageEnvironment 目录详解
|
视频直播
新人主播如何赚钱,3点告诉你视频直播源码的变现方式
全民直播的时代已经到来抓住,绝大多数人是发现了直播市场的红利期,想要分一杯羹,作为新人主播如何通过视频直播源码的功能来赚钱,首先要了解市场需求,明确自己的优势,凸显自己的竞争力。
新人主播如何赚钱,3点告诉你视频直播源码的变现方式
|
搜索推荐 视频直播
视频直播源码提高用户满意度必须要具有的特性
目前直播app应用开发市场已进入快速发展时期,不仅越来越多的直播app应用陆续投放到应用市场中,同时用户对于手机直播app应用软件的要求也越来越高。随着年轻用户群体的个性化需求提升,如何提高用户满意度,便成为了视频直播源码的开发最为关键的问题之一。  
视频直播源码提高用户满意度必须要具有的特性
|
视频直播
直播系统的顶梁柱:视频直播源码中的礼物功能
我们了解的直播系统功能是十分的实用且丰富的,一般来说,视频直播源码自带的功能有:直播功能、私信功能、邀请奖励、财务管理功能、短视频功能、直播PK功能、多种礼物功能、分享功能、拉黑功能、带货商城功能、家族功能、标签功能、评论功能等等实质性的功能,今天就针对礼物功能来做一下详细的介绍。
直播系统的顶梁柱:视频直播源码中的礼物功能
|
视频直播
短视频直播源码,使用URLConnection下载一张图片
短视频直播源码,使用URLConnection下载一张图片
284 0