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

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۲۰ نفر آنلاین
۲ عضو و ۱۱۸ مهمان در سایت حاضرند

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

0 امتیاز
78 بازدید

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

خرو

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

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

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 (امتیاز 3,342)   2 16 42
توضیحاتی راجع به سورس کد بنویسید چطور کار میکنه
اگه از گراف کامل kp به تعداد n راس کم کنیم میشه kp-n چیز خاصی نداره
...