数据库十字链表有什么优点
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容主要讲解"数据库十字链表有什么优点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据库十字链表有什么优点"吧!1. 引言:对于有向图来说,邻接表是
千家信息网最后更新 2024年09月22日数据库十字链表有什么优点
本篇内容主要讲解"数据库十字链表有什么优点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据库十字链表有什么优点"吧!
1. 引言:
对于有向图来说,邻接表是有缺陷的:
邻接表:关心了出度问题,想了解入度就必须要遍历整个图才知道。
逆邻接表:解决了入度,却不了解出度的情况。
能否把邻接表和逆邻接表结合起来呢?答案就是:使用十字链表。
2.十字链表存储结构:
顶点表结点结构:
firstin:表示入边表头指针,指向该顶点的入边表中第一个结点。//新加入的
firstout:表示出边表头指针,指向该顶点的出边表中的第一个结点。//跟 邻接表中的 顶点一样
边表结点结构:
tailvex:指弧起点在顶点表的下标。
headvex:指弧终点在顶点表中的下标。//跟邻接表中的 adjvex 一样
headlink:指入边表指针域。
taillink:指边表指针域。//跟邻接表中的next 一样;
如果是网,还可以再增加一个weight域来存储权值。
蓝线表示出度,红线表示入度
3.十字链表的优点:
1.)十字链表是把邻接表和逆邻接表整合在一起,这样既容易找到以Vi为尾的弧,也容易找到以Vi为头的弧,
因而容易求的顶点的出度和入度。
2.)十字链表创建图算法的时间复杂度和邻接表是相同的。
十字链表typedef char Vtype //顶点类型 typedef int Etype //权值类型 #definde MAXV 100; typedef struct edgeNode //边表节点 { int tailvex; //新加入的 int headvex; //邻接点 存储该顶点对应的下标 Etype weight;//边 权值 struct edgeNode *headllink; //新加入的 struct edgeNode *taillink; }EdgeNode; typedef struct Vnode //顶点表 节点 { Vtype data; EdgeNode* firstInEdge; // 入度 EdgeNode* firstOutEdge;// 出度}VNODE; // typedef struct { VNODE adjlist[MAXV]; int numV;//当前顶点数 int numE;//当前边数 }GraphAdjList; void CreateALGraph(GraphAdjList* G) { int i,j,k; EdgeNode* e= NULL; cout<<输入顶点数"; cin>>G->numV; cout<<输入边数"; cin>>G->numE; for(i=0;inumV;i++)//建立顶点信息 { cin >> G->adjlist[i].data; //输入顶点信息 G->adjlist[i].firstOutEdge = NULL; //边表节点 为空 G->adjlist[i].firstInEdge = NULL; //边表节点 为空 } for(k=0;k >i; cout<<"输入边的结尾"; cin>>j; e = new EdgeNode; // e->tailvex = i; //新加入的 弧的起点 入度 e->headlink = G->adjlist[j].firstInEdge; //新的 G->adjlist[j].firstInEdge = e;//新的 e->headvex = j; // 原来的 e->adjvex e->taillink = G->adjlist[i].firstOutEdge; //原来的 G->adjlist[i].firstOutEdge = e; } }
到此,相信大家对"数据库十字链表有什么优点"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
顶点
十字
优点
指针
结点
节点
数据
数据库
下标
信息
结构
存储
内容
指向
类型
表头
起点
学习
复杂
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是域名服务器
开出的软件开发如何做账
信阳去哪学计算机网络技术
eclipse本地服务器
网络安全空间竞赛单兵渗透
网络安全执法培训讲话
接口数据存入数据库
共享服务器文件损坏是什么原因
liunx数据库在哪
服务器虚拟资源管理软件
赣州企业服务器费用多少
宣城安卓软件开发需要多少钱
联想rd330服务器
山西曙光服务器虚拟化哪家好
暗黑2重置版双开无法连接服务器
数据库读写分离 C 实现
南京新品服务器服务商
tbc五区各组服务器
新乡软件开发公众号
pc机与服务器区别
厦门鹭米软件开发服务部
河北软件开发测试公司有哪些
贵州网络安全技能竞赛
软件开发经历描述
认知障碍的数据库介绍写什么内容
数据库数据加密实现
网络安全和英语同时学习
数据库为何无法编辑关系
爱依服软件开发
灵鹊网络技术公司