0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

拓?fù)渑判蛩惴ㄓ惺裁醋饔?/h1>

大家好,我是bigsai。

拓?fù)渑判?,很多人都可能?tīng)說(shuō)但是不了解的一種算法。不知者大多會(huì)提出這樣的疑問(wèn):

這是某種排序算法?這好像是一種圖論算法?圖也能排序?

非線性結(jié)構(gòu)在傳統(tǒng)意義上確實(shí)不太好排序,而拓?fù)渑判蛩菍?duì)有向圖的頂點(diǎn)排成一個(gè)線性序列。并且不一定唯一。

什么是拓?fù)渑判颍?/p>

對(duì)一個(gè)有向無(wú)環(huán)圖(Directed Acyclic Graph簡(jiǎn)稱DAG)G進(jìn)行拓?fù)渑判颍菍中所有頂點(diǎn)排成一個(gè)線性序列,使得圖中任意一對(duì)頂點(diǎn)u和v,若邊∈E(G),則u在線性序列中出現(xiàn)在v之前。通常,這樣的線性序列稱為滿足拓?fù)浯涡颍═opological Order)的序列,簡(jiǎn)稱拓?fù)湫蛄?。?jiǎn)單的說(shuō),由某個(gè)集合上的一個(gè)偏序得到該集合上的一個(gè)全序,這個(gè)操作稱之為拓?fù)渑判颉?/p>

拓?fù)渑判蛴泻巫饔茫?/p>

拓?fù)渑判虻膽?yīng)用其實(shí)還是蠻多的,拓?fù)渑判蛟谝恍┕こ逃卸嗟拦ば驎r(shí)候可以獲取一個(gè)有效的加工順序、還有些游戲里的任務(wù)成就必須滿足一個(gè)符合的拓?fù)渑判虿拍芙怄i下一關(guān)、還有一些項(xiàng)目或者環(huán)境的依賴關(guān)系集……

當(dāng)然上面的例子可能不夠具體,離我們稍微近一點(diǎn)的就是課程學(xué)習(xí)上,比如你學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前基本要學(xué)習(xí)C或者C++這門課,因?yàn)閿?shù)據(jù)結(jié)構(gòu)中需要懂和會(huì)用C++的代碼;學(xué)習(xí)操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)之前要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課,因?yàn)槔锩嫔婕暗胶芏鄶?shù)據(jù)結(jié)構(gòu)和算法;學(xué)習(xí)Java Web開(kāi)發(fā)前要學(xué)習(xí)JavaSE和HTML這兩門課;不同院校課程安排截然不同但均能很好的連接起來(lái),就是因?yàn)榘才诺恼n程滿足一個(gè)拓?fù)渑判颉?/p>

拓?fù)渑判蜻€是不能理解?我舉個(gè)更詳細(xì)的例子,學(xué)習(xí)Java系列的教程部分,可能有下面這個(gè)順序:

ec4e533c-11e5-11ec-8fb8-12bb97331649.png

就比如學(xué)習(xí)Java系類(部分)從Java基礎(chǔ),到JSP/Servlet,到SSM,到SpringBoot,SpringCloud等是個(gè)循序漸進(jìn)、且有前提依賴的過(guò)程。在JSP學(xué)習(xí)要首先掌握J(rèn)ava基礎(chǔ)和HTML基礎(chǔ)。學(xué)習(xí)框架要掌握J(rèn)SP/Servlet和JDBC之類才行。那么,這個(gè)學(xué)習(xí)過(guò)程即構(gòu)成一個(gè)拓?fù)湫蛄小.?dāng)然這個(gè)序列也不唯一,你可以對(duì)不關(guān)聯(lián)的學(xué)科隨意選擇順序(比如Html和Java可以隨便先開(kāi)始哪一個(gè))。

那上述序列可以簡(jiǎn)單表示為:

這五種均為可以選擇的學(xué)習(xí)方案,對(duì)課程安排可以有參考作用,這五個(gè)都是上面有向無(wú)環(huán)圖(DAG)的拓?fù)湫蛄?,只是小的選擇的策略不同(先學(xué)Java或者先學(xué)HTML不要緊,但是要滿足整個(gè)順序要求),不影響滿足規(guī)則順序!

對(duì)于拓?fù)渑判?,還有一些比較專業(yè)的名詞需要銘記:

DAG:有向無(wú)環(huán)圖

AOV網(wǎng):數(shù)據(jù)在頂點(diǎn),頂點(diǎn)表示活動(dòng),邊表示活動(dòng)的先后關(guān)系,可以理解為一種面向?qū)ο蟆?/p>

AOE網(wǎng):數(shù)據(jù)在邊上,頂點(diǎn)表示事件,有向邊表示活動(dòng),邊上的權(quán)值表示該活動(dòng)持續(xù)的時(shí)間,可以理解為面向過(guò)程。

很多人不知道AOE網(wǎng)干啥用的,拓?fù)渑判蚴墙鉀Q一個(gè)工程能否順序進(jìn)行的問(wèn)題,但有時(shí)還需解決工程完成需要的最短時(shí)間。而AOE經(jīng)常使用在求關(guān)鍵路徑中(這里就先不進(jìn)行詳細(xì)介紹內(nèi)容和算法了),圖片來(lái)源https://www.cnblogs.com/svod5306/p/14723338.html)。

我們今天講的拓?fù)渑判蚓褪窃贏OV中找到不破壞圖結(jié)構(gòu)的序列,對(duì)于有向無(wú)環(huán)圖,需要注意一下圖中:若A在B前面,則不存在B在A前面的路徑(不能成環(huán))。圖中兩個(gè)相鄰節(jié)點(diǎn)在拓?fù)湫蛄兄兄恍枰獫M足前后關(guān)系而不一定需要相鄰(節(jié)點(diǎn)只需滿足相對(duì)的前后關(guān)系,所以拓?fù)渑判虿⒉灰欢ㄎㄒ唬?/p>

算法分析上面簡(jiǎn)單的介紹了拓?fù)渑判?,下面詳?xì)講講拓?fù)渑判虻那蠓ā?/p>

正常步驟為(方法不一定唯一):

1.從DAG圖中找到一個(gè)沒(méi)有前驅(qū)的頂點(diǎn)輸出??梢员闅v入度為0的節(jié)點(diǎn),也可以用優(yōu)先隊(duì)列維護(hù)。

2.刪除以這個(gè)點(diǎn)為起點(diǎn)的邊。刪除一條邊,其指向節(jié)點(diǎn)的入度減1,這樣為了找到下個(gè)沒(méi)有前驅(qū)節(jié)點(diǎn)的頂點(diǎn)。

3.重復(fù)上述,直到最后一個(gè)頂點(diǎn)被輸出。如果還有頂點(diǎn)未被輸出,則說(shuō)明有環(huán)!

對(duì)于上圖的簡(jiǎn)單序列,可以簡(jiǎn)單描述步驟為:

step1:刪除節(jié)點(diǎn)1(或者2)及其指向的邊,將節(jié)點(diǎn)輸出

step2:刪除節(jié)點(diǎn)2(或者3)及其指向的邊,將節(jié)點(diǎn)輸出

step2(這里進(jìn)行兩步):刪除節(jié)點(diǎn)3(或者4)及其指向的邊,將節(jié)點(diǎn)輸出,緊接著刪除節(jié)點(diǎn)3(或者6)其指向的邊,將節(jié)點(diǎn)輸出。

step3:按照上述規(guī)則重復(fù)進(jìn)行,直到所有節(jié)點(diǎn)都被刪除。

這樣就完成一次拓?fù)渑判蛄鞒蹋玫揭粋€(gè)拓?fù)湫蛄?,但是這個(gè)序列并不唯一,從算法執(zhí)行過(guò)程中也看到有很多選擇方案,具體得到結(jié)果看你算法的設(shè)計(jì)了,但只要滿足DAG圖中前后相對(duì)關(guān)系。

另外觀察 1 2 4 3 6 5 7 8 這個(gè)序列滿足我們所說(shuō)的有關(guān)系的節(jié)點(diǎn)指向的在前面,被指向的在后面。如果完全沒(méi)關(guān)系那不一定前后(例如1,2)

代碼實(shí)現(xiàn)對(duì)于拓?fù)渑判?,如何用代碼實(shí)現(xiàn)呢?

雖然在上面詳細(xì)介紹了思路和流程,也很通俗易懂,但是實(shí)際上代碼的實(shí)現(xiàn)還是很需要斟酌的,如何在空間和時(shí)間上能夠得到較好的平衡且取得較好的效率?

首先要考慮存儲(chǔ),對(duì)于節(jié)點(diǎn),是用鄰接矩陣還是鄰接表存儲(chǔ)呢,通常拓?fù)渑判蛉绻褂镁仃嚧鎯?chǔ)都是比較稀疏的,比較浪費(fèi)內(nèi)存空間,這里還是使用鄰接表來(lái)存儲(chǔ)節(jié)點(diǎn)。

另外,如果圖中節(jié)點(diǎn)是1,2,3,4,5,6這樣的有序編號(hào),我們可以直接用數(shù)組,但是如果遇到1,2,88,9999類似不連續(xù)跨度很大編號(hào)節(jié)點(diǎn),也可以考慮用Map存儲(chǔ)映射一下位置。

那么我們具體的代碼思想為:

①新建node類,包含節(jié)點(diǎn)數(shù)值和它的指向節(jié)點(diǎn)集合(這里直接用List集合)

②初始化一個(gè)人node數(shù)組,輸入/枚舉節(jié)點(diǎn)之間關(guān)系,被指向的節(jié)點(diǎn)入度+1?。ɡ鏏—》C)那么C的入度+1;

③掃描所有node(這里掃描數(shù)組)。將所有入度為0的點(diǎn)加入一個(gè)容器棧(隊(duì)列)中。

④當(dāng)棧(隊(duì)列)不空的時(shí)候,拋出其中任意一個(gè)node(只要入度為零可以隨便選擇順序)。將node輸出,并且node指向的所有節(jié)點(diǎn)入度減1。如果某個(gè)點(diǎn)的入度被減為0,那么就將它加入棧(隊(duì)列)。

⑤重復(fù)上述操作,直到棧(隊(duì)列)為空。

這里主要是利用?;蛘哧?duì)列儲(chǔ)存入度只為0的節(jié)點(diǎn),只需要初次掃描表將入度為0的放入棧(隊(duì)列)中。

因?yàn)楣?jié)點(diǎn)之間是有相關(guān)性的,一個(gè)節(jié)點(diǎn)若想入度為零,那么它的前驅(qū)節(jié)點(diǎn)點(diǎn)肯定在它前入度為0,拆除關(guān)聯(lián)箭頭將自己入度減1,在一個(gè)有向無(wú)環(huán)圖中總會(huì)有大于等于1個(gè)入度為0的節(jié)點(diǎn)。

在具體實(shí)現(xiàn)上,方式是有多樣的,我的這個(gè)只是一個(gè)簡(jiǎn)單的演示,效率不一定很高,大家參考一下即可。

具體實(shí)現(xiàn)代碼為:

import java.util.ArrayDeque;

import java.util.ArrayList;

import java.util.List;

import java.util.Queue;

import java.util.Stack;

public class tuopu {

static class node

{

int value;

List《Integer》 next;

public node(int value) {

this.value=value;

next=new ArrayList《Integer》();

}

public void setnext(List《Integer》list) {

this.next=list;

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

node []nodes=new node[9];//儲(chǔ)存節(jié)點(diǎn)

int a[]=new int[9];//儲(chǔ)存入度

List《Integer》list[]=new ArrayList[10];//臨時(shí)空間,為了存儲(chǔ)指向的集合

for(int i=1;i《9;i++)

{

nodes[i]=new node(i);

list[i]=new ArrayList《Integer》();

}

initmap(nodes,list,a);

//主要流程

//Queue《node》q1=new ArrayDeque《node》();

Stack《node》s1=new Stack《node》();

for(int i=1;i《9;i++)

{

//System.out.print(nodes[i].next.size()+“ 55 ”);

//System.out.println(a[i]);

if(a[i]==0) {s1.add(nodes[i]);}

}

while(!s1.isEmpty())

{

node n1=s1.pop();//拋出輸出

System.out.print(n1.value+“ ”);

List《Integer》next=n1.next;

for(int i=0;i《next.size();i++)

{

a[next.get(i)]--;//入度減一

if(a[next.get(i)]==0)//如果入度為0

{

s1.add(nodes[next.get(i)]);

}

}

}

}

private static void initmap(node[] nodes, List《Integer》[] list, int[] a) {

list[1].add(3);

nodes[1].setnext(list[1]);

a[3]++;

list[2].add(4);list[2].add(6);

nodes[2].setnext(list[2]);

a[4]++;a[6]++;

list[3].add(5);

nodes[3].setnext(list[3]);

a[5]++;

list[4].add(5);list[4].add(6);

nodes[4].setnext(list[4]);

a[5]++;a[6]++;

list[5].add(7);

nodes[5].setnext(list[5]);

a[7]++;

list[6].add(8);

nodes[6].setnext(list[6]);

a[8]++;

list[7].add(8);

nodes[7].setnext(list[7]);

a[8]++;

}

}

輸出結(jié)果

2 4 6 1 3 5 7 8

當(dāng)然,上面說(shuō)過(guò)用棧和隊(duì)列都可以!如果使用隊(duì)列就會(huì)得到1 2 3 4 5 6 7 8 的拓?fù)湫蛄?/p>

至于圖的構(gòu)造,因?yàn)闆](méi)有條件可能效率并不高,算法也可能不太完美,如有優(yōu)化錯(cuò)誤還請(qǐng)大佬指正!

拓?fù)渑判蛘噎h(huán)前面說(shuō)到,拓?fù)渑判蛐枰谟邢驘o(wú)環(huán)圖中才能得到一個(gè)拓?fù)湫蛄校侨绻o定一個(gè)有向圖,怎么知道它是否可以形成一個(gè)拓?fù)湫蛄心兀?/p>

當(dāng)然是在拓?fù)渑判蛩惴ㄉ线M(jìn)行改動(dòng),我們?cè)谶M(jìn)行拓?fù)渑判驎?huì)刪除所有入度為0的節(jié)點(diǎn),但是如有有環(huán)那么刪除節(jié)點(diǎn)個(gè)數(shù)就小于所有節(jié)點(diǎn)個(gè)數(shù),在具體實(shí)現(xiàn)上,我們只需要在?;蛘哧?duì)列拋出時(shí)候通過(guò)一個(gè)計(jì)數(shù)器統(tǒng)計(jì)數(shù)字即可。

當(dāng)然這個(gè)問(wèn)題力扣207有原題可以看看自己代碼是否能夠ac,問(wèn)題描述:

你這個(gè)學(xué)期必須選修 numCourses 門課程,記為 0 到 numCourses - 1 。

在選修某些課程之前需要一些先修課程。先修課程按數(shù)組 prerequisites 給出,其中 prerequisites[i] = [ai, bi] ,表示如果要學(xué)習(xí)課程 ai 則 必須 先學(xué)習(xí)課程 bi 。

例如,先修課程對(duì) [0, 1] 表示:想要學(xué)習(xí)課程 0 ,你需要先完成課程 1 。

請(qǐng)你判斷是否可能完成所有課程的學(xué)習(xí)?如果可以,返回 true ;否則,返回 false 。

分析上面已經(jīng)給出,不過(guò)在具體實(shí)現(xiàn)代碼的時(shí)候比較靈活,不一定非得創(chuàng)建node類,思路上理的清即可。

實(shí)現(xiàn)代碼:

class Solution {

public boolean canFinish(int numCourses, int[][] prerequisites) {

int indegree[]=new int[numCourses];

List《Integer》 next[]=new ArrayList[numCourses];

for(int i=0;i《numCourses;i++){

next[i]=new ArrayList();

}

for(int i=0;i《prerequisites.length;i++) {

int preid=prerequisites[i][1];

int courseid=prerequisites[i][0];

indegree[courseid]++;//入度加一

next[preid].add(courseid);//next指向

}

Queue《Integer》queue=new ArrayDeque《》();

for(int i=0;i《numCourses;i++) {//加入入度為0的節(jié)點(diǎn)

if(indegree[i]==0){

queue.add(i);

}

}

int nodeNum=0;//判斷刪除節(jié)點(diǎn)數(shù)量 入度為0刪除 如果刪除所有那么返回true

while (!queue.isEmpty())

{

nodeNum++;

int nodeId=queue.poll();

for(int i=0;i《next[nodeId].size();i++)

{

int nodeIndex=next[nodeId].get(i);

indegree[nodeIndex]--;

if(indegree[nodeIndex]==0) {

queue.add(nodeIndex);

}

}

}

if(nodeNum==numCourses)

return true;

return false;

}

}

好了,到這里拓?fù)渑判騼?nèi)容講解完畢!

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104751
  • 拓?fù)浣Y(jié)構(gòu)

    關(guān)注

    6

    文章

    323

    瀏覽量

    39202
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68612

原文標(biāo)題:排個(gè)課表學(xué)會(huì)了拓?fù)渑判?!有點(diǎn)意思

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    。本書(shū)力求從算法、芯片設(shè)計(jì)、軟件開(kāi)發(fā)等多個(gè)角度解讀基礎(chǔ)算法電路的設(shè)計(jì),涵蓋了溢出保護(hù)、符號(hào)運(yùn)算、浮點(diǎn)運(yùn)算、位寬確定等運(yùn)算電路基礎(chǔ)知識(shí),以及除法器、信號(hào)發(fā)生器、濾波器、小數(shù)分頻器等常用基本算法
    發(fā)表于 11-21 17:14

    時(shí)間復(fù)雜度為 O(n^2) 的排序算法

    作者:京東保險(xiǎn) 王奕龍 對(duì)于小規(guī)模數(shù)據(jù),我們可以選用時(shí)間復(fù)雜度為 O(n2) 的排序算法。因?yàn)闀r(shí)間復(fù)雜度并不代表實(shí)際代碼的執(zhí)行時(shí)間,它省去了低階、系數(shù)和常數(shù),僅代表的增長(zhǎng)趨勢(shì),所以在小規(guī)模數(shù)據(jù)情況下
    的頭像 發(fā)表于 10-19 16:31 ?1160次閱讀
    時(shí)間復(fù)雜度為 O(n^2) 的<b class='flag-5'>排序</b><b class='flag-5'>算法</b>

    TPS54120排序和跟蹤

    電子發(fā)燒友網(wǎng)站提供《TPS54120排序和跟蹤.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 10:54 ?0次下載
    TPS54120<b class='flag-5'>排序</b>和跟蹤

    常用的ADC濾波算法哪些

    ADC(模數(shù)轉(zhuǎn)換器)濾波算法在信號(hào)處理中起著至關(guān)重要的作用,它們能夠幫助我們提取出有用的信號(hào),同時(shí)濾除噪聲和干擾。以下是常用的ADC濾波算法詳解,這些算法各具特色,適用于不同的應(yīng)用場(chǎng)景
    的頭像 發(fā)表于 10-08 14:35 ?389次閱讀

    三電平dcdc拓?fù)?/b>結(jié)構(gòu)幾種

    三電平DC-DC拓?fù)?/b>結(jié)構(gòu)是一種高效的電力轉(zhuǎn)換技術(shù),廣泛應(yīng)用于電力電子領(lǐng)域。 三電平DC-DC拓?fù)?/b>結(jié)構(gòu)的基本原理 三電平DC-DC拓?fù)?/b>結(jié)構(gòu)是一種將輸入電壓轉(zhuǎn)換為輸出電壓的電力轉(zhuǎn)換器。它通過(guò)控制開(kāi)關(guān)器件
    的頭像 發(fā)表于 07-12 09:45 ?1347次閱讀

    手把手教你排序算法怎么寫(xiě)

    今天以直接插入排序算法,給大家分享一下排序算法的實(shí)現(xiàn)思路,主要包含以下部分內(nèi)容:插入排序介紹插入排序
    的頭像 發(fā)表于 06-04 08:03 ?692次閱讀
    手把手教你<b class='flag-5'>排序</b><b class='flag-5'>算法</b>怎么寫(xiě)

    儲(chǔ)能變流器拓?fù)?/b>結(jié)構(gòu)哪些種類

    儲(chǔ)能變流器(PCS)的拓?fù)?/b>結(jié)構(gòu)是其設(shè)計(jì)和性能的核心部分,它決定了變流器的效率、可靠性和成本。
    的頭像 發(fā)表于 04-22 14:52 ?2461次閱讀

    用FPGA實(shí)現(xiàn)雙調(diào)排序的方法(2)

    典型的排序算法包括冒泡排序、選擇排序、插入排序、歸并排序、快速
    的頭像 發(fā)表于 03-21 10:28 ?640次閱讀
    用FPGA實(shí)現(xiàn)雙調(diào)<b class='flag-5'>排序</b>的方法(2)

    FPGA實(shí)現(xiàn)雙調(diào)排序算法的探索與實(shí)踐

    雙調(diào)排序(BitonicSort)是數(shù)據(jù)獨(dú)立(Data-independent)的排序算法,即比較順序與數(shù)據(jù)無(wú)關(guān),特別適合并行執(zhí)行。在了解雙調(diào)排序
    發(fā)表于 03-14 09:50 ?653次閱讀
    FPGA實(shí)現(xiàn)雙調(diào)<b class='flag-5'>排序</b><b class='flag-5'>算法</b>的探索與實(shí)踐

    想聽(tīng)聽(tīng)48和大對(duì)數(shù)光纜的排序

    48芯光纜和大對(duì)數(shù)光纜都是光纜中的一種,它們的區(qū)別在于芯數(shù)不同。48芯光纜指的是光纜中包含48根光纖,而大對(duì)數(shù)光纜則是指光纜中芯數(shù)超過(guò)了48芯。 在實(shí)際的光纜應(yīng)用中,不同芯數(shù)的光纜需要進(jìn)行不同的排序
    的頭像 發(fā)表于 03-12 10:44 ?618次閱讀

    C語(yǔ)言實(shí)現(xiàn)經(jīng)典排序算法概覽

    冒泡排序(英語(yǔ):Bubble Sort)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序(如從大到小、首字母從A到Z)錯(cuò)誤就把他們交換過(guò)來(lái)。
    的頭像 發(fā)表于 02-25 12:27 ?451次閱讀
    C語(yǔ)言實(shí)現(xiàn)經(jīng)典<b class='flag-5'>排序</b><b class='flag-5'>算法</b>概覽

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)哪幾種類型 網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)的優(yōu)缺點(diǎn)

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)是指計(jì)算機(jī)網(wǎng)絡(luò)中節(jié)點(diǎn)與連接線之間的總體布局形式。根據(jù)節(jié)點(diǎn)與連接線的布局形式,網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)可以分為以下幾種類型: 星型拓?fù)?/b>:星型拓?fù)?/b>是以一個(gè)中心節(jié)點(diǎn)為核心,其他所有節(jié)點(diǎn)都直接
    的頭像 發(fā)表于 02-04 10:22 ?2216次閱讀

    什么是計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)?/b>結(jié)構(gòu)?主要的拓?fù)?/b>結(jié)構(gòu)哪些?

    計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)?/b>結(jié)構(gòu)是指計(jì)算機(jī)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)(包括計(jì)算機(jī)、服務(wù)器、路由器等)之間連接的方式和形式。拓?fù)?/b>結(jié)構(gòu)可以影響到網(wǎng)絡(luò)的性能、可靠性和擴(kuò)展性。在計(jì)算機(jī)網(wǎng)絡(luò)中,常見(jiàn)的拓?fù)?/b>結(jié)構(gòu)總線型、
    的頭像 發(fā)表于 01-31 10:40 ?2215次閱讀

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)哪幾種類型 網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)優(yōu)缺點(diǎn)

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)是指網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)(計(jì)算機(jī)、路由器等)之間的連接方式。根據(jù)節(jié)點(diǎn)之間的連接方式不同,網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)可以分為以下幾種類型: 星型拓?fù)?/b>結(jié)構(gòu): 星型拓?fù)?/b>結(jié)構(gòu)以一個(gè)中心節(jié)點(diǎn)為核心,其他
    的頭像 發(fā)表于 01-30 10:04 ?1676次閱讀

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)幾種?各有什么優(yōu)缺點(diǎn)?

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)是指在計(jì)算機(jī)網(wǎng)絡(luò)中,節(jié)點(diǎn)和連接線之間的物理布局方式,它決定了數(shù)據(jù)在網(wǎng)絡(luò)中的流動(dòng)方式。現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)主要有以下幾種常見(jiàn)的拓?fù)?/b>結(jié)構(gòu),分別是總線型、星型、環(huán)型、樹(shù)型和網(wǎng)狀型。每種拓?fù)?/b>結(jié)構(gòu)都有其
    的頭像 發(fā)表于 01-17 11:14 ?3267次閱讀