欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)有向圖鄰接表的構建

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

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

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

#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;     //頂點數(shù)和弧數(shù)
 Graph(int m, int n) :vexnum(m), arcnum(n) {};
 Graph() :vexnum(0), arcnum(0) {};
};
 
 
int main()
{
 int vnum, anum, tempanum = 0;
 cout << "輸入頂點數(shù):";
 cin >> vnum;
 cout << "輸入弧數(shù):";
 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++中cin.getline()和getline()函數(shù)的區(qū)別小結

    C++中cin.getline()和getline()函數(shù)的區(qū)別小結

    這篇文章主要介紹了C++中cin.getline()和getline()函數(shù)區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 實例講解C++編程中對設計模式中的原型模式的使用

    實例講解C++編程中對設計模式中的原型模式的使用

    這篇文章主要介紹了C++編程中對設計模式中的原型模式的使用實例,包括原型模式中對C++的深拷貝和淺拷貝的處理,需要的朋友可以參考下
    2016-03-03
  • C語言常量介紹

    C語言常量介紹

    這篇文章介紹了C語言中的常量,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • 一文帶你學習一下C++中的構造函數(shù)

    一文帶你學習一下C++中的構造函數(shù)

    構造函數(shù)是一種特殊的函數(shù),它用于在創(chuàng)建對象時初始化對象的值。在本文中,我們將學習C++的構造函數(shù)以及如何使用它們來創(chuàng)建對象,希望對大家有所幫助
    2023-05-05
  • QT實現(xiàn)串口通信的完整步驟

    QT實現(xiàn)串口通信的完整步驟

    如果用qt寫程序作為上位機,然后通過和usb和下位機通信的時候,就需要用到qt中的串口通信了,下面這篇文章主要給大家介紹了關于QT實現(xiàn)串口通信的相關資料,需要的朋友可以參考下
    2023-02-02
  • 適合初學者的C語言常量類型的講解

    適合初學者的C語言常量類型的講解

    常量是固定值,在程序執(zhí)行期間不會改變。這些固定的值,又叫做字面量。常量可以是任何的基本數(shù)據(jù)類型,比如整數(shù)常量、浮點常量、字符常量,或字符串字面值,也有枚舉常量。常量就像是常規(guī)的變量,只不過常量的值在定義后不能進行修改
    2022-04-04
  • 使用Objective-C獲取IPHONE手機IMSI序列號

    使用Objective-C獲取IPHONE手機IMSI序列號

    這篇文章主要介紹了使用Objective-C獲取IPHONE手機IMSI序列號的方法以及通過IMSI序列號獲取運營商、手機號的方法,非常的實用,有需要的小伙伴可以參考下。
    2015-04-04
  • C 語言基礎實現(xiàn)青蛙跳臺階和漢諾塔問題

    C 語言基礎實現(xiàn)青蛙跳臺階和漢諾塔問題

    這篇文章我們九里講講C 語言基礎實現(xiàn)青蛙跳臺階和漢諾塔問題,感興趣的小伙伴可以參考下面文章的具體內容
    2021-09-09
  • Qt實現(xiàn)簡易時鐘

    Qt實現(xiàn)簡易時鐘

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)簡易時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++ seekg函數(shù)用法案例詳解

    C++ seekg函數(shù)用法案例詳解

    這篇文章主要介紹了C++ seekg函數(shù)用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論