NIM : 1810131310027
Kelas : A1 Pilkom 2018
Mata Kuliah : Struktur Data/Tugas UAS
1. Tree
1
cout<<"Data sudah ada!";
}
//fungsi yang digunakan untuk mencetak tree secara preOrder
void preOrder(Node *root)
{
if(root != NULL){
cout<< root->data << " " ;
preOrder(root->kiri);
preOrder(root->kanan);
}
}
//fungsi yang digunakan untuk mencetak tree secara inOrder
void inOrder(Node *root)
{
if(root != NULL){
inOrder(root->kiri);
cout<<root->data << " " ;
inOrder(root->kanan);
}
}
//fungsi yang digunakan untuk mencetak tree secara postOrder
void postOrder(Node *root)
{
if(root != NULL){
postOrder(root->kiri);
postOrder(root->kanan);
cout<< root->data << " " ;
}
}
//fungsi utama
int main()
{
//deklarasikan variabel
int pil, data;// c;
Node *pohon; //*t;
pohon = NULL; //inisialisasi node pohon
//perulangan do-while
do
{
system("cls"); //bersihkan layar
cout<<"\t#PROGRAM TREE C++#";
cout<<"\n\t==================";
cout<<"\nMENU";
cout<<"\n----\n";
cout<<"1. Tambah\n";
cout<<"2. Lihat pre-order\n";
cout<<"3. Lihat in-order\n";
cout<<"4. Lihat post-order\n";
cout<<"5. Exit\n";
cout<<"Pilihan : ";
cin >> pil;
switch(pil)
{
//jika pil bernilai 1
case 1 :
cout<<"\nINPUT : ";
cout<<"\n-------";
2
cout<<"\nData baru : ";
cin>> data;
//panggil fungsi untuk menambah node yang berisi data pada tree
tambah(&pohon, data);
break;
//jika pil bernilai 2
case 2 :
cout<<"\nOUTPUT PRE ORDER : ";
cout<<"\n------------------\n";
if(pohon!=NULL)
//panggil fungsi untuk mencetak data secara preOrder
preOrder(pohon);
else
cout<<"Masih kosong!";
break;
//jika pil bernilai 3
case 3 :
cout<<"\nOUTPUT IN ORDER : ";
cout<<"\n------------------\n";
if(pohon!=NULL)
//panggil fungsi untuk mencetak data secara inOrder
inOrder(pohon);
else
cout<<"Masih kosong!";
break;
//jika pil bernilai 4
case 4 :
cout<<"\nOUTPUT POST ORDER : ";
cout<<"\n------------------\n";
if(pohon!=NULL)
//panggil fungsi untuk mencetak data secara postOrder
postOrder(pohon);
else
cout<<"Masih kosong!";
break;
}
_getch();
}while(pil != 5); //akan diulang jika input tidak samadengan 5
return EXIT_FAILURE;
}
3
Output Program:
2. Graph
Graph::Graph(int V)
{
this->V = V;
4
adj = new list<int>[V];
}
void Graph::BFS(int s)
{
bool *visited = new bool[V];
for(int i = 0; i < V; i++)
visited[i] = false;
list<int> queue;
visited[s] = true;
queue.push_back(s);
list<int>::iterator i;
while(!queue.empty())
{
s = queue.front();
cout << s << " ";
queue.pop_front();
5
if (!visited[*i])
{
visited[*i] = true;
queue.push_back(*i);
}
}
}
}
int main()
{
Graph g(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
return 0;
}