STACK ATAU TUMPUKAN
Diposting oleh RANI AFRIANI di 03.45
1. Stack termasuk linear list atau non linear list?
jelaskan!
jawab:Stack merupakan bentuk khusus dari linier list jadi bisa dipastikan bahwa Stack merupakan linear list. kenapa? karena pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list(TOP)
2. Kondisi hampa terpenuhi jika??
jawab:kondisi hampa akan terjadi apabila posisi akhir dari list(TOP) pada stack berada di posisi TOP=-1.
3.sebutkan 4 operasi stack dan beri contohnya!
a. ISEMPTY
contohny:
void insertDepan(int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = baru;
if(isEmpty()==1){
head=baru;
head->next=head;
}
else {
bantu = head;
while(bantu->next!=head){
bantu=bantu->next;
}
baru->next = head;
head = baru;
bantu->next = head;
}
printf(”Data masuk\n“);
}
b.ISFULL
contohnya:
int Stack :: isFull()
{
if (top == max_stack -1 ) return 1;
else
return 0;
}
C.PUSH
contohnya:
void Stack :: push()
{
char insert;
int i ;
cout << "Much of data : ";
cin >> i;
if( i > max_stack -1) cout << "Out Of Range"; cout << endl;
for(int j = 0;j<=i-1;j++)
{
cout << "insert data : ";
cin >> insert;
top++;
data[top] = insert;
}
getche();
}
D.POP
contohnya:
void Stack :: pop()
{
cout << "Insert Index Data : ";
cin >> top;
cout << "Data Deleted : " << data[top] << endl;
top--;
}
4. dari ke 4 operasi tersebut, mana yang menghasilkan data yanf bersifat boolean??
jawab:ISEMPTY
jelaskan!
jawab:Stack merupakan bentuk khusus dari linier list jadi bisa dipastikan bahwa Stack merupakan linear list. kenapa? karena pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list(TOP)
2. Kondisi hampa terpenuhi jika??
jawab:kondisi hampa akan terjadi apabila posisi akhir dari list(TOP) pada stack berada di posisi TOP=-1.
3.sebutkan 4 operasi stack dan beri contohnya!
a. ISEMPTY
contohny:
void insertDepan(int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = baru;
if(isEmpty()==1){
head=baru;
head->next=head;
}
else {
bantu = head;
while(bantu->next!=head){
bantu=bantu->next;
}
baru->next = head;
head = baru;
bantu->next = head;
}
printf(”Data masuk\n“);
}
b.ISFULL
contohnya:
int Stack :: isFull()
{
if (top == max_stack -1 ) return 1;
else
return 0;
}
C.PUSH
contohnya:
void Stack :: push()
{
char insert;
int i ;
cout << "Much of data : ";
cin >> i;
if( i > max_stack -1) cout << "Out Of Range"; cout << endl;
for(int j = 0;j<=i-1;j++)
{
cout << "insert data : ";
cin >> insert;
top++;
data[top] = insert;
}
getche();
}
D.POP
contohnya:
void Stack :: pop()
{
cout << "Insert Index Data : ";
cin >> top;
cout << "Data Deleted : " << data[top] << endl;
top--;
}
4. dari ke 4 operasi tersebut, mana yang menghasilkan data yanf bersifat boolean??
jawab:ISEMPTY
5. Sebutkan 2 Kesalahan yang mungkin Terjadi Pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi?
Jawab : Apabila keadaan stack kosong dan kita akan memPOP(menghapus data) maka Pertama
akan terjadi kesalahan dan kemudian eror(Under Flow).
Apabila keadaan stack penuh dan kita akan men-Top (menambah data) maka akan kedua
terjadi kesalahan dan kemudian eror(Over Flow).
6. Konversi notasi infix A-B*C^D^(E*F/(G-H)) ke notasi postfix?
Jawab :
INFIX = A-B*C^D^(E*F/(G-H))
POSTFIX = ABCDEFGH-/*^^*-
Jawab : Apabila keadaan stack kosong dan kita akan memPOP(menghapus data) maka Pertama
akan terjadi kesalahan dan kemudian eror(Under Flow).
Apabila keadaan stack penuh dan kita akan men-Top (menambah data) maka akan kedua
terjadi kesalahan dan kemudian eror(Over Flow).
6. Konversi notasi infix A-B*C^D^(E*F/(G-H)) ke notasi postfix?
Jawab :
INFIX = A-B*C^D^(E*F/(G-H))
POSTFIX = ABCDEFGH-/*^^*-
Diposting oleh RANI AFRIANI di 04.01
1. Diketahui float A[5] dan lokasi awal terletak dialamat 00F(H) maka lokasi A[3] adalah
Jawab :
Diketahui :
@A[i]=A[3]
B=00F(H)
i=3
L=4
Penyelesaian :
@A[i] =B+(i-1)*L
A[3]= 00F(H)+(3-1)*1
=00F(H)+8(D)
=017F(H)
2. Diketahui int A[99] dan lokasi awal terletak dialamat 001E(H) maka lokasi A[78] adalah
Jawab :
Dik:
@A[i]=A[78]
B=001E(H)
i =78
L = 2
Penyelesaian :
@A[i] =B+(i-1)*L
A[78]=001E(H)+(78-1)*2
=001E(H)+154(D)
=001E(H)+9A(H)
=00B8(H)
3. Diketahui double A[10][5] dan lokasi awal terletak dialamat 0011(H) , maka lokasi awal terletak dialamat 0011(H) , maka lokasi A[7][2] secara baris dan kolom adalah
Jawab :
Dik : double A[10][5]
@M[i][j]=A[7][2]
B =0011(H)
i =7
j =2
K =10
N =5
L = 8
Penyelesaian :
Baris
@M[i][j] =B+{(i-1)*N+(j-1)*L
A[7][2]=0011(H)+{(7-1)*5+(2-1)}*8
=0011(H)+{30+1}*8
=0011(H)+ 248
=0011(H)+F8(H(
=0109(H)
Kolom :
@M[i][j]=B+{(j-1)*K+(i-1)}*L
=0011(H)+{(2-1)*10+(7-1)}*8
=0011(H)+{10-6}*8
=0091(H)
4. Diketahui long A[25][30] dan lokasi awal terletak di alamat 00F(H), maka lokasi terletak dialamat 00F(H) maka lokasi A[20][21] secara baris dan kolom
Jawab :
Dik :
long A[25][30]
B=00F(H)
@M[i][j]=A[20][21]
i =20
j =21
K =25
N =30
L =4
Penyelesaian :
Baris
@M[i][j] =B+{(i-1)*N+(j-1)}*L
A[20][21]=00F(H)+{(20-1)*30+(21-1)}*4
=00F(H)+{570+20}*4
=00F(H)+2076(D)
=00F(H)+81C
=82B(H)
Kolom :
@M[i][j] =B+{(j-1)*K+(i-1)}*L
A[20][21]=00F(H)+{(21-1)*25+(20-1)}*4
=00F(H)+{500+19}*4
=00F(H)+ 2075(D)
=00F(H)+81C
=82B(H)
Jawab :
Diketahui :
@A[i]=A[3]
B=00F(H)
i=3
L=4
Penyelesaian :
@A[i] =B+(i-1)*L
A[3]= 00F(H)+(3-1)*1
=00F(H)+8(D)
=017F(H)
2. Diketahui int A[99] dan lokasi awal terletak dialamat 001E(H) maka lokasi A[78] adalah
Jawab :
Dik:
@A[i]=A[78]
B=001E(H)
i =78
L = 2
Penyelesaian :
@A[i] =B+(i-1)*L
A[78]=001E(H)+(78-1)*2
=001E(H)+154(D)
=001E(H)+9A(H)
=00B8(H)
3. Diketahui double A[10][5] dan lokasi awal terletak dialamat 0011(H) , maka lokasi awal terletak dialamat 0011(H) , maka lokasi A[7][2] secara baris dan kolom adalah
Jawab :
Dik : double A[10][5]
@M[i][j]=A[7][2]
B =0011(H)
i =7
j =2
K =10
N =5
L = 8
Penyelesaian :
Baris
@M[i][j] =B+{(i-1)*N+(j-1)*L
A[7][2]=0011(H)+{(7-1)*5+(2-1)}*8
=0011(H)+{30+1}*8
=0011(H)+ 248
=0011(H)+F8(H(
=0109(H)
Kolom :
@M[i][j]=B+{(j-1)*K+(i-1)}*L
=0011(H)+{(2-1)*10+(7-1)}*8
=0011(H)+{10-6}*8
=0091(H)
4. Diketahui long A[25][30] dan lokasi awal terletak di alamat 00F(H), maka lokasi terletak dialamat 00F(H) maka lokasi A[20][21] secara baris dan kolom
Jawab :
Dik :
long A[25][30]
B=00F(H)
@M[i][j]=A[20][21]
i =20
j =21
K =25
N =30
L =4
Penyelesaian :
Baris
@M[i][j] =B+{(i-1)*N+(j-1)}*L
A[20][21]=00F(H)+{(20-1)*30+(21-1)}*4
=00F(H)+{570+20}*4
=00F(H)+2076(D)
=00F(H)+81C
=82B(H)
Kolom :
@M[i][j] =B+{(j-1)*K+(i-1)}*L
A[20][21]=00F(H)+{(21-1)*25+(20-1)}*4
=00F(H)+{500+19}*4
=00F(H)+ 2075(D)
=00F(H)+81C
=82B(H)
Latihan struktur data
Diposting oleh RANI AFRIANI di 06.01
keterangan: huruf bold adalah jawaban
1. type data dibawah ini yang tidak termasuk dalam tipe data sederhana tunggal adalah...
a. Boolean
b. string
c. integer
d. real/float
2. ==, <=, >=, != termasuk dalam operator..
a. aritmatika
b. unary
c. relasi
d. bitwise
3. type data yang menghasilkan bentuk keluaran nilai true dan false(benar dan salah), adalah...
a. boolean
b. string
c. integer
d. real/float.
alasan : karena dimodul dijelaskan bahwa type data tersebut adalah boolean.
4. void main()
{
...(a)... x,y,z;
clrscr();
cout<<"input nilai x=";cin>>x;
cout<<"input nilai y=";cin>>y;
z=x+y;
cout<<"hasil penjumlahan="<
getch();
}
tipe data yang tepat untuk (a) adalah...
a. boolean
b. string
c. integer
d. real/float
5. void main()
{
int r=10; int s;
clrscr();
s=10+ ++r;
cout<<"r="<<<\n;
cout<<"s="<<<\n;
getch();
}
hasil dari eksekusi dari program diatas adalah
a. r=11, s=21
b. r=11, s=20
c. r=10, s=21
d. r=10, s=20
alasannya karena r=10. ++r=11. dan s=10+ ++r, jadi sama saja s=10+11=21.
1. type data dibawah ini yang tidak termasuk dalam tipe data sederhana tunggal adalah...
a. Boolean
b. string
c. integer
d. real/float
alasan:string adalah data majemuk.
2. ==, <=, >=, != termasuk dalam operator..
a. aritmatika
b. unary
c. relasi
d. bitwise
alasannya karena operator diatas digunakan untuk membandingkan dua buah nilai..
3. type data yang menghasilkan bentuk keluaran nilai true dan false(benar dan salah), adalah...
a. boolean
b. string
c. integer
d. real/float.
alasan : karena dimodul dijelaskan bahwa type data tersebut adalah boolean.
4. void main()
{
...(a)... x,y,z;
clrscr();
cout<<"input nilai x=";cin>>x;
cout<<"input nilai y=";cin>>y;
z=x+y;
cout<<"hasil penjumlahan="<
getch();
}
tipe data yang tepat untuk (a) adalah...
a. boolean
b. string
c. integer
d. real/float
alasann: karena diatas merupakan contoh program penjumlahan. maka data yang dipakai dalam penjumlahan adalah integer(angka).
5. void main()
{
int r=10; int s;
clrscr();
s=10+ ++r;
cout<<"r="<<<\n;
cout<<"s="<
getch();
}
hasil dari eksekusi dari program diatas adalah
a. r=11, s=21
b. r=11, s=20
c. r=10, s=21
d. r=10, s=20
Powered by WordPress
©
RHANIajah - Designed by Matt, Blogger templates by Blog and Web.
Powered by Blogger.
Powered by Blogger.





