最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++ 帶有入度和路徑權(quán)值的領(lǐng)接表的建立

2023-06-24 20:33 作者:bili_69278239799  | 我要投稿

//輸入?yún)?shù)?

//a b c d e q 空格

//ab5 ae4 ac3 bc2 cd8 ce6 de10 q 空格

#include <cstddef>

#include <iostream>

#include <sstream>

#include <string>

#include <array>

#include <memory>

#include <map>


using namespace std;

union VexItem

{

? ? char value_;

? ? int index_;

};


class Vex

{

public:

? ? Vex(Vex&&) = default;

? ? Vex& operator =(Vex&&) = default;

? ? Vex() = default;

? ? explicit Vex(char ch, int cost = 0)

? ? : cost_(cost)

? ? , rudu_(0)

? ? , next_(nullptr)

? ? {

? ? ? ? vex_item_.value_ = ch;

? ? ? ? //cout << "init vex_item_.value_: " << vex_item_.value_ << endl;

? ? }


? ? explicit Vex(int index, int cost = 0)

? ? : cost_(cost)

? ? , rudu_(0)

? ? , next_(nullptr)

? ? {

? ? ? ? vex_item_.index_ = index;

? ? ? ? //cout << "init vex_item_.index_: " << vex_item_.index_ << endl;

? ? }


? ? VexItem vex_item_;

? ? int cost_;

? ? int rudu_;

? ? shared_ptr<Vex> next_;

};


int main() {

? ? constexpr int input_len{2 + 10};

? ? constexpr auto vex_len{100};

? ? int vex_count{0};

? ? array<Vex, vex_len> vex;

? ? map<char, int> vex_index;

? ? auto string2num = [](const char* str)

? ? {

? ? ? ? int cost{0};

? ? ? ? stringstream ss;

? ? ? ? ss << str;

? ? ? ? ss >> cost;

? ? ? ? return cost;

? ? };


? ? for(int i = 0 ;; ++i)

? ? {

? ? ? ? array<char, input_len> input;

? ? ? ? cout << "input vex point" << endl;

? ? ? ? cin.getline(input.data(), input_len, ' ');

? ? ? ? //cout << "you input vex point:" << input.data() << endl;


? ? ? ? if(input[0] == 'q')

? ? ? ? ? ? break;

? ? ? ?

? ? ? ? vex[i] = Vex(input[0]);

? ? ? ? vex_index[input[0]] = i;

? ? ? ? vex_count++;

? ? ? ? //cout << input[0] << " map to " << i << endl;

? ? }


? ? cin.ignore(std::numeric_limits< streamsize >::max(), '\n');

? ? do

? ? {

? ? ? ? array<char, input_len> input;

? ? ? ? cout << "input vex pair and cost" << endl;

? ? ? ?

? ? ? ? cin.getline(input.data(), input_len, ' ');

? ? ? ? //cout << "you input vex pair and cost:" << input.data() << endl;


? ? ? ? if(input[0] == 'q')

? ? ? ? ? ? break;

? ? ? ?

? ? ? ? cout << input[0] << "}}" << input[1] << endl;

? ? ? ? auto from_index = vex_index[input[0]];

? ? ? ? auto to_idnex = vex_index[input[1]];

? ? ? ? auto tmp = make_shared<Vex>(to_idnex, string2num(input.data() + 2));

? ? ? ?

? ? ? ? tmp->next_ = vex[from_index].next_;

? ? ? ? vex[from_index].next_ = tmp;

? ? ? ? vex[to_idnex].rudu_++;

? ? ? ?

? ? }while(true);

? ? //a b c d e q

? ? //ab5 ae4 ac3 bc2 cd8 ce6 de10 q

? ? for(int i = 0; i < vex_count; i++)

? ? {

? ? ? ? auto& item = vex[i];

? ? ? ? if(item.vex_item_.value_ == '\0' && item.vex_item_.index_ == 0)

? ? ? ? ? ? break;

? ? ? ? auto ptr = item.next_;

? ? ? ? cout << "vex :" << item.vex_item_.value_ << ", rudu:" << item.rudu_ << endl;

? ? ? ? if(ptr == nullptr)

? ? ? ? {

? ? ? ? ? ? cout << "end vex:" << item.vex_item_.value_ << endl;

? ? ? ? }


? ? ? ? for(; ptr != nullptr; ptr = ptr->next_)

? ? ? ? {

? ? ? ? ? ? cout << item.vex_item_.value_ << "-" << ptr->cost_ << "->" << vex[ptr->vex_item_.index_].vex_item_.value_ << " ?";

? ? ? ? }

? ? ? ? cout << endl;

? ? }


? ? return 1;

}



C++ 帶有入度和路徑權(quán)值的領(lǐng)接表的建立的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
柳河县| 木兰县| 绩溪县| 宿州市| 平和县| 沁源县| 扶绥县| 昌邑市| 增城市| 遵义县| 南昌市| 新平| 托克逊县| 乌苏市| 靖远县| 土默特右旗| 西和县| 霍邱县| 河间市| 定日县| 江孜县| 嘉义县| 郑州市| 娱乐| 九龙县| 武山县| 曲阳县| 商南县| 长宁区| 靖江市| 焉耆| 平江县| 丁青县| 大方县| 佛冈县| 绥阳县| 南木林县| 都江堰市| 丰宁| 河曲县| 皮山县|