最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現有向圖鄰接表的構建

 更新時間:2020年04月26日 14:12:19   作者:GetoWork  
這篇文章主要為大家詳細介紹了C++實現有向圖鄰接表的構建,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++實現有向圖鄰接表的構建代碼,供大家參考,具體內容如下

數據結構里面的一道基礎題,分享下自己的寫法,驗證可跑。

#include<iostream>
#include<string>
const int MAX = 20;
using namespace std;
 
 
struct ArcNode {      //弧結點
 int adjvex = -1;     //所指頂點位置
 ArcNode *nextarc = nullptr; //下一條狐指針
 size_t info = 0;  //弧信息
};
 
 
struct VNode {      //頂點
 string data = "0";
 ArcNode *firstarc = nullptr; //第一條依附該頂點的弧的指針
};
 
 
struct Graph {      //圖結構
 VNode vertices[MAX];         //全部頂點
 int vexnum, arcnum;     //頂點數和弧數
 Graph(int m, int n) :vexnum(m), arcnum(n) {};
 Graph() :vexnum(0), arcnum(0) {};
};
 
 
int main()
{
 int vnum, anum, tempanum = 0;
 cout << "輸入頂點數:";
 cin >> vnum;
 cout << "輸入弧數:";
 cin >> anum;
 cout << "\n\n";
 Graph G(vnum, anum);
 for (int i = 0; i != vnum; ++i) {
 cout << "輸入結點" << i << "的信息:";
 cin >> G.vertices[i].data;
 if (tempanum != anum)
  cout << "輸入依靠此結點的弧的信息(輸入-1以停止):\n";
 else
  cout << "已輸入所有弧的信息!\n";
 bool first = true;
 ArcNode *p, *temp;
 for (int j = 0; (j != anum) && (tempanum != vnum); ++j) {
  int pointto;
  cout << "輸入弧" << tempanum << "所指向的頂點位置:";
  cin >> pointto;
  if (pointto == -1) break;
  else {
  ++tempanum;
  if (first == true) {
   first = false;
   G.vertices[i].firstarc = new ArcNode;
   G.vertices[i].firstarc->adjvex = pointto;
   p = G.vertices[i].firstarc;
  }
  else {
   temp = new ArcNode;
   temp->adjvex = pointto;
   p->nextarc = temp;
   p = temp;
  }
  }
 }
 cout << endl;
 }
 
 for (int i = 0; i != anum; ++i) {
 cout << "頂點" << i << ": |" << G.vertices[i].data << "|";
 if (G.vertices[i].firstarc) {
  cout << " -> " << G.vertices[i].firstarc->adjvex;
  auto pt = G.vertices[i].firstarc->nextarc;
  while (pt) {
  cout << " -> " << pt->adjvex;
  pt = pt->nextarc;
  }
  cout << "-> ^";
 }
 else
  cout << " -> ^";
 cout << endl;
 }
 return 0;
}

由于只是單純構建基本的無權值有向圖鄰接表,里面的弧結構中弧信息未利用到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 基于C++實現BMI身體質量指數計算工具

    基于C++實現BMI身體質量指數計算工具

    BMI(Body?Mass?Index,身體質量指數),也稱為體重指數,是一種常用的衡量成人人體肥胖程度的指標,本文就來用C++編寫一個簡單的BMI計算工具吧
    2023-10-10
  • C語言 CRITICAL_SECTION用法案例詳解

    C語言 CRITICAL_SECTION用法案例詳解

    這篇文章主要介紹了C語言 CRITICAL_SECTION用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • C++代碼實現逆波蘭式

    C++代碼實現逆波蘭式

    這篇文章主要為大家詳細介紹了C++代碼實現逆波蘭式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++實現路口交通燈模擬系統(tǒng)

    C++實現路口交通燈模擬系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現路口交通燈模擬系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++虛函數表的原理與使用解析

    C++虛函數表的原理與使用解析

    對C++?了解的人都應該知道虛函數(Virtual?Function)是通過一張?zhí)摵瘮当恚╒irtual?Table)來實現的。簡稱為V-Table。本文就將詳細講講虛函數表的原理與使用,需要的可以參考一下
    2022-04-04
  • C++之openFrameworks框架介紹

    C++之openFrameworks框架介紹

    本章我們將介紹一個非常好用的跨平臺的 C++開源框架 openFrameworks。它是一個開源的跨平臺的C++工具包,方便開發(fā)者創(chuàng)建出一個更簡單和直觀的框架,擅長開發(fā)圖像和動畫,感興趣的同學可以參考一下
    2023-05-05
  • C/C++讀取配置文件的方式小結

    C/C++讀取配置文件的方式小結

    這篇文章主要為大家詳細介紹了C/C++中讀取配置文件的幾種常見方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • 簡單講解哈希表

    簡單講解哈希表

    本文主要介紹了哈希表簡單知識及C語言實現哈希表實例,文中利用圖片以及代碼簡單講解了相關知識,感興趣的小伙伴可以多多學習這篇文章
    2021-09-09
  • C++排序算法之插入排序

    C++排序算法之插入排序

    這篇文章主要為大家詳細介紹了C++排序算法之插入排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • OpenCV圖像算法實現圖像切分圖像合并示例

    OpenCV圖像算法實現圖像切分圖像合并示例

    這篇文章主要為大家介紹了python圖像算法OpenCV實現圖像切分圖像合并操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

平塘县| 永仁县| 广河县| 丽江市| 三河市| 韶关市| 营山县| 扶余县| 婺源县| 华坪县| 石首市| 芜湖县| 满洲里市| 莱阳市| 顺昌县| 龙海市| 富民县| 汕尾市| 星座| 通州区| 晋州市| 花莲市| 西丰县| 中宁县| 六安市| 武川县| 丰都县| 镇宁| 绥中县| 开平市| 南川市| 紫云| 岑巩县| 湖口县| 东台市| 寿光市| 三河市| 滦平县| 安化县| 桐庐县| 任丘市|