Struktur data
Pengalaman belajar:
Struktur data linier untuk
pemecahan masalah: daftar, tumpukan dan antrian
LAITI301B1O_21-2
Hadiah
Fabián Antonio Osorio García
guru
FRANCISCO JACOB AVILA CAMACHO
kota Meksiko
September 2021
1
Pengalaman Pembelajaran: Struktur data linier untuk pemecahan masalah:
daftar, tumpukan, dan antrian
Tujuan:
Insiden kritis
Sebagai langkah pertama, kita harus mendefinisikan dan menyimpan data dasar
yang kita perlukan agar pengguna dapat meminta perjalanan menggunakan
aplikasi “Ecoviaje” kita.
Yang harus Anda lakukan adalah membuat struktur data (Permintaan) yang
memungkinkan Anda menentukan dan menyimpan informasi dasar yang
diperlukan pengguna untuk meminta perjalanan.
Indikasi
Momen pertama
2
1. Bacalah isi unit dengan cermat.
2. Pilih antara alternatif penerapan struktur data tipe daftar, Permintaan Daftar
yang memungkinkan Anda menyimpan semua permintaan berdasarkan
daftar tunggal atau daftar ganda dan jelaskan mengapa Anda memilih
penerapan tersebut (benarkan)
Momen kedua
Fungsi atau metode harus mengembalikan objek bertipe Daftar Permintaan yang
isinya merupakan elemen dari kedua daftar masukan secara bergantian, yaitu
dalam urutan yang sama, tetapi mengintegrasikan elemen dari setiap daftar.
3
Mari kita lihat contoh dengan huruf:
Daftar 1: {A, C, D, E, F, G}
Daftar 2: {B, J}
b) Bagikan, yang menerima sebagai parameter dua objek atau data bertipe Daftar
Permintaan, dan yang mengembalikan objek bertipe Daftar Permintaan dengan
semua permintaan dari kedua daftar masukan, yang kota asalnya sama, dan juga
kota tujuannya.
Misalnya, jika A adalah permintaan yang ada di daftar pertama, dengan kota asal
Puebla dan CDMX tujuan, dan B adalah permintaan dari daftar kedua, juga
dengan Puebla asal dan CDMX tujuan, baik permintaan, A dan B, Mereka harus
ada dalam daftar yang dikembalikan oleh metode atau fungsi.
#termasuk<iostream>
#termasuk<string.h>
#definisikan benar 1
#definisikan salah 0
menggunakan namespace std;
4
struktur typedef{
Permintaan S[1000];
ke yang terakhir;
}Daftar;
ke dalam utama()
{
Daftar A,B,C;
Permintaan Tambahan;
ke dalam pilihan, kembali;
inisialisasi(A);
inisialisasi(B);
inisialisasi(C);
Mengerjakan{
cout<<"\n\t\tDaftar Permintaan"<<endl;
cout<<"\n\t1 - Masukkan ke dalam daftar A";
cout<<"\n\t2 - Masukkan ke dalam daftar B";
cout<<"\n\t3 - Bagikan daftar";
cout<<"\n\t4 - Hapus daftar A";
cout<<"\n\t5 - Hapus daftar B";
cout<<"\n\t6 - Tampilkan daftar";
cout<<"\n\t0 - Keluar dari program";
5
cout<<"\n\tPilih opsi : ";
cin>>memilih;
buangan(stdin);
jika(opc==1||opc==2||opc==3)
{
jika(memilih==3)
{
cout<<"Masukkan Sumber dan Tujuan yang akan membagikan daftar
permintaan";
}
cout<<"\nMasukkan Asal :";
cin>>aux.origin;
cout<<"\nMasukkan Tujuan :";
cin>>aux.destinasi;
jika(memilih!=3)
{
cout<<"\nMasukkan ID :";
cin>>aux.id;
}
kalau tidak
{
strcpy(aux.id,"NULL");
}
}
beralih(memilih){
kasus 1:
masukkan(&A,tambahan);
cout<<"\nDAFTAR KE:";
mencetak(A);
merusak;
6
kasus 2:
masukkan(&B,tambahan);
cout<<"\nDAFTAR B:";
mencetak(B);
merusak;
kasus 3:
inisialisasi(C);
berbagi(A,B,&C,aux);
merusak;
kasus 4:
batal(A);
merusak;
kasus 5:
batal(B);
merusak;
kasus 6:
cout<<"\nDAFTAR KE:";
mencetak(A);
cout<<"\nDAFTAR B:";
mencetak(B);
cout<<"\nDAFTAR C:";
mencetak(C);
merusak;
bawaan:
jika(memilih==0){
cout<<"\n\t\tKeluar dari program. Selamat tinggal!!\n\n";
kembali 0;
}
kalau tidak{
cout<<"\n\t\t** Opsi di luar jangkauan. Coba lagi. **\n"<<endl;
}
7
merusak;
}
}sementara(memilih);
kembali 0;
}
8
kembali;
}
while(i<l.terakhir){
cout<<"\n"<<"ID:"<<lS[i].id<<" O:"<<lS[i].asal<<" D:"<<lS[i].tujuan< <"\
n"<<endl;
saya=saya+1;
}
}
while(t<berputar)
{
if(turn == 1)//DAFTAR ULASAN A
{
if(strcmp(AS[i].origin,S.origin)==0&&strcmp(AS[i].destination,S.destination)==0)
9
{
masukkan(C,AS[i]);
belok = 2;
}
saya++;
}
lain //TINJAUAN DAFTAR B
{
if(strcmp(BS[j].asal,S.asal)==0&&strcmp(BS[j].tujuan,S.tujuan)==0)
{
masukkan(C,BS[j]);
pergeseran = 1;
}
j++;
}
t++;
if(i==A.terakhir&&j<B.terakhir)
{
pergeseran=2;
}
if(j==B.terakhir&&i<A.terakhir)
{
pergeseran=1;
}
10
11
12
13
14
15
16
17