一。图的储存结构
1.临接矩阵表示
易确认两任意顶点是否有边,要确定有多少条则要遍历全图
适合稠密图
#include <stdio.h>
#include <stdlib.h>
#define MAXVEX 100
#define inf 2000000000
typedef char vertexType;
struct vertex
{
int num;
vertexType data;
};
typedef struct graph
{
struct vertex vexs[MAXVEX];//vertex
int edges[MAXVEX][MAXVEX];//adjacency matrix
}adjmax;
2.临接表
无向图有n个顶点,e条边,则临接表需要n个结点哥2e个表节点,适合稀疏图;
无向图中vi的度为第i个链表中的结点数;
有向图中vi的出度为第i个链表中的结点数,求入度需遍历全图,可建立逆临接表;
易找到任一顶点的第一哥邻接点和下一个临接点,但搜索vi和vj之间是否有边或弧需搜索第i个或第j个链表。
#include <stdio.h>
#include <stdlib.h>
#define MAXVEX 100
#define inf 2000000000
typedef char vertexType;
struct edgeNode{
int from;
int weight;
struct edgeNode *next;
vertexType data;
};
typedef struct vexnode
{
vertexType data;
int No;
struct edgeNode *link;
}adjlist[MAXVEX];
二。两种遍历
深搜:
类似于树的先根遍历
//deep first search
void dfs(adjlist adj,int v,int visited[])
//adj is a adjlist, v is the No. of first point,visited is a assistant array
{
int i;
struct edgeNode *p;
visited[v]=1;
printf("[%d,%c]",v,adj[v].data);
p=adj[v].link;
while(p!=NULL)
{
if(visited[p->from]==0) dfs(adj,p->from,visited);
p=p->next;
}
}
宽搜
类似树的层次遍历
访问v之后依次访问各个未曾访问过的临接点,然后分别从这些临接点出发依次访问他们的临接点
//broad first search
void bfs(adjlist adj,int v,int visited[])
{
struct edgeNode *p;
visited[v]=1;
int front=-1,rear=-1;
int i;
rear++;
printf("[%d,%c]",v,adj[v].data);
queue[rear]=v;
while(front!=rear)
{
front=(front+1)%MAXVEX;
i=queue[front];
p=adj[i].link;
while(p!=NULL)
{
if(visited[p->from]==0)
{
printf("..%d,%d:\n",p->from,visited[p->from]);
visited[p->from]=1;
printf("[%d,%c]",p->from,adj[p->from].data);
rear=(rear+1)%MAXVEX;
queue[rear]=p->from;
}
p=p->next;
}
}
}
分享到:
相关推荐
总的来说,操作系统考研复习涵盖了操作系统的基本原理、设计方法和技术应用,要求考生具备深入理解并能够运用这些知识去分析和解决实际问题的能力。在准备考试时,考生需要全面复习这些知识点,并通过练习题和模拟...
"2019王道操作系统考研复习指导"旨在为准备考研的同学提供一套系统、全面的复习资料,帮助他们在有限的时间内高效掌握操作系统的核心知识。 首先,我们要了解操作系统的基本概念。操作系统是管理计算机硬件与软件...
在这个压缩包文件"【梦享团队】考研核心考点——计算机操作系统.pdf"中,很可能包含了关于操作系统考研复习的关键知识点。 1. **操作系统定义与功能** 操作系统是控制和管理计算机硬件与软件资源的程序集合,它的...
### 操作系统考研复习重点详解 #### 一、操作系统概述 **1. 操作系统的概念、特征、功能和服务** - **定义**: 计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统(或程序集合)。 - **地位**: 操作...
在考研复习中,操作系统部分的知识点涵盖了多个方面,包括操作系统的基本概念、系统调用过程、并发与共享、多道程序设计以及进程和线程管理等。 首先,操作系统通过系统调用接口与用户程序交互,允许程序请求操作...
"天勤2019操作系统计算机考研复习指导电子版"旨在帮助考生深入理解并准备操作系统相关的考试内容。这本书可能涵盖了诸如进程管理、内存管理、文件系统、I/O系统、死锁与调度策略等关键知识点。 首先,进程管理是...
"王道2019年操作系统考研复习指导"无疑为备考者提供了一条明确的学习路径。这份复习资料可能涵盖了操作系统的主要章节和重点内容,旨在帮助考生高效备考。 操作系统作为计算机系统的管理软件,其主要功能包括进程...
在计算机考研中,操作系统是408综合的重要组成部分,涵盖了操作系统概述、进程的描述与控制等多个章节。 1. **进程与线程**:进程是资源分配的基本单位,而线程是调度的基本单位。线程存在于进程中,同一进程内的...
数据结构与操作系统是计算机科学中的两个核心领域,对于考研备考来说,这两个主题的理解和掌握至关重要。苏州大学2006年的计算机考研试题聚焦于这些关键知识点,旨在考察考生的基础理论知识以及问题解决能力。 首先...
这份“杭州电子科技大学-计算机-考研-初试-复试-复习知识点总结.zip”压缩包文件,包含了历年的考研复习重点,旨在帮助考生们精准把握考试脉络,提升备考效率。 一、核心课程与基础理论 1. 数据结构:作为计算机...
根据给定的信息,我们可以推断出这是一份针对《数据结构》科目的考研复习资料,由黄明编写。下面将详细解析《数据数据结构》考研复习精编中的关键知识点及复习策略。 ### 数据结构基本概念 #### 1. 数据结构定义 ...
### 数据结构考研复习精编知识点概述 #### 一、线性表 **1.1 线性表的定义和基本操作** - **定义**:线性表是一种基本且重要的数据结构,它由一系列元素组成,这些元素按照一定的顺序排列,并且每个元素除了第一...
数据结构笔记-考研复习 数据结构是计算机科学中的一门重要学科,研究如何组织、存储和使用数据。下面是考研复习笔记中的一些重要知识点: 1. 数据结构定义:数据结构是指数据元素之间的逻辑关系、数据的运算和存储...
### 操作系统考研复习知识点详解 #### 一、操作系统的基本概念与作用 1. **操作系统定义**:操作系统(Operating System,简称OS)是配置在计算机硬件之上的第一层软件,是对计算机硬件的首次扩充。它是系统软件的...
王道2019年操作系统计算机考研复习指导PDF提供了全面的复习材料,旨在帮助考生深入理解和掌握这门课程的关键知识点。 1. **操作系统概述**:操作系统是管理计算机硬件和软件资源的中央管理系统,它为用户和应用程序...
基本操作实现 - **插入**: 将一个新元素添加到数据结构中。 - **删除**: 从数据结构中移除一个元素。 - **查找**: 在数据结构中找到满足一定条件的元素。 - **排序**: 对数据结构中的元素按某种顺序进行排列。 - **...
总的来说,这个压缩包提供的PPT涵盖了操作系统的核心内容,包括进程管理、内存管理、文件系统、并发控制、I/O系统等,这些都是考研复习的重要素材,也是计算机专业学生必须掌握的基础知识。通过深入学习和理解这些...
这份"计算机考研数据结构复习指导Word版"提供了一条有效的学习路径,帮助考生们精准定位并攻克这个领域的关键点。 复习指导文档《复习指导(数据结构部分).doc》可能涵盖了以下内容: 1. **基本概念**:数据结构...