برنامه‌ای که یک گراف را از ورودی دریافت کنه و مکمل آنرا نمایش بده. - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

برنامه‌ای که یک گراف را از ورودی دریافت کنه و مکمل آنرا نمایش بده.

+1 امتیاز

دوتا گراف رو دریافت کنه اولی گراف کامل باشه، دومی هر گرافی میتونه باشه (اصطلاحا گراف G)بعد راس هایی که هر دوگراف با برابرن یا مشابه اند رو حذف ومابقی رو به

خرو

جی ببره c++, طراحی الگوریتم, گراف

سوال شده دی 11, 1393  بوسیله ی msh118 (امتیاز 10)   1 1 2
ویرایش شده دی 30, 1393 بوسیله ی haniye sarbazi
اون گرافی که کشیدی کامل نیست خوب
سلام با تشکر از دیدگاه شما
شما فرض کن کامله این تصویررو بعنوان مثال گذاشتم

1 پاسخ

+1 امتیاز

بیا اینم جوابش فقط باید توجه داشته باشی که حتما گراف اولی کامل باشه در غیر اینصورت کلاهشون میره تو کلاهتون

البته توی کد اشتباهاتی که فکر میکردم کاربر امکان داره انجام بده برای وارد کردن گراف جلوشو گرفتم از جمله همین نکته که ممیکنه گراف اولی رو کامل وارد نکنید!!!

 

دنباله های گراف رو وارد کنید و جواب هم یه دنباله گراف هست

#include<iostream>
#include<cstdarg>
#include<regex>
#include<fstream>
#include<string>
#include<sstream>
#include<vector>

using namespace std;

void split(string,char,vector<unsigned short>&);

int main(){
    vector<unsigned short> GK(0,0);
    vector<unsigned short> G(0,0);
    vector<unsigned short> GT(0,0);
    string t;err:
    cout << "please enter sequence of complete graph : \n\t";
    GK.clear();
    getline(cin,t);
    split(t,' ',GK);
    for(auto i:GK){
        if(i!=(unsigned int)GK.size()-1 ){
            cout << "\t::.Problem.::\tInserted Graph is not CompeleteGraph.\n" << endl;
            goto err;
        }
    }err1:
    G.clear();
    cout << "please enter sequence of 2nd graph : \n\t";
    getline(cin,t);
    split(t,' ',G);
    if(G.size()<=1 || G.size()>=GK.size()){
        cout << "\t::.Problem.::\tInserted Graph is not valid.\n" << endl;
        goto err1;
    }
    GT=GK;
    GT.resize(GK.size()-G.size());
    for(unsigned int i=0;i<GT.size();i++){
        GT.at(i)=GT.size()-1;
    }
    cout << "subtract GK - G is : \n";
    for(auto i:GT){
        cout << i << " ";
    }cout << endl;
    return 0;
}
void split(string str,char delim,vector<unsigned short> &vec){
    stringstream ss(str);
    string t;
    while(getline(ss,t,delim)){
        vec.push_back(atoi(t.c_str()));
    }
}

 

 

پاسخ داده شده دی 14, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
ویرایش شده دی 14, 1393 بوسیله ی Fire360Boy
توضیحاتی راجع به سورس کد بنویسید چطور کار میکنه
اگه از گراف کامل kp به تعداد n راس کم کنیم میشه kp-n چیز خاصی نداره
...