fork(1) download
  1. #include<iostream>
  2. #include<vector>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. struct node
  8. {
  9. node *left;
  10. int data;
  11. node *right;
  12. node(int x) : left(NULL),data(x),right(NULL)
  13. {};
  14. };
  15.  
  16.  
  17. void Create_Graph(int V,vector<node *>& v)
  18. {
  19. v.resize(5,nullptr);
  20. v.reserve(5);
  21. }
  22.  
  23. void Create_Edge(vector<node *>&v,int M,int N)
  24. {
  25. node *temp;
  26. temp=new node(N);
  27. temp->right=v.at(M);
  28. if(v.at(M))
  29. v.at(M)->left=temp;
  30. v.at(M)=temp;
  31. temp=new node(M);
  32. temp->right=v.at(N);
  33. if(v.at(N))
  34. v.at(N)->left=temp;
  35. v.at(N)=temp;
  36. }
  37.  
  38. void Display_List(vector<node *>&v,int V)
  39. {
  40. node *temp;
  41. for(unsigned i=0;i<V;i++)
  42. {
  43. temp=v.at(i);
  44. cout<<i<<":";
  45. while(temp!=NULL)
  46. {
  47. cout<<' '<<temp->data;
  48. temp=temp->right;
  49. }
  50. cout<<endl;
  51. }
  52. }
  53.  
  54. int main(void)
  55. {
  56. vector<node *>myvector;
  57. int V=5;
  58. Create_Graph(V,myvector);
  59. Create_Edge(myvector,0,1);
  60. Create_Edge(myvector,0,4);
  61. Create_Edge(myvector,1,2);
  62. Create_Edge(myvector,1,3);
  63. Create_Edge(myvector,1,4);
  64. Create_Edge(myvector,2,3);
  65. Create_Edge(myvector,3,4);
  66. Display_List(myvector,V);
  67. return(0);
  68. }
  69.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
0: 4 1
1: 4 3 2 0
2: 3 1
3: 4 2 1
4: 3 1 0