-
Notifications
You must be signed in to change notification settings - Fork 0
/
tabel.h
119 lines (97 loc) · 5.04 KB
/
tabel.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/***************************************************************/
/* */
/* Nama File : tabel.h */
/* Deskripsi : Header Abstract Data Type Tabel */
/* */
/***************************************************************/
#ifndef TABEL_H
#define TABEL_H
#include "boolean.h"
#define IdxMax 100
#define IdxMin 1
typedef int ElmtType;
typedef int IdxType;
typedef struct {
ElmtType TI[IdxMax-IdxMin+1]; /*Tabel*/
int NEff; /*Indek efektif Tabel*/
} TabInt;
/*
Prototype*/
/***************************************************************/
/* */
/* KONSTRUCTOR */
/* */
/***************************************************************/
void CreateEmpty(TabInt* T);
/* Proses : Mengeset nilai T.Neff dengan nilai 0. */
/* I.S : Sembarang. */
/* F.S : Terbentuk tabel T kosong dengan kapasitas Nmax-Nmin+1.*/
/***************************************************************/
/* */
/* OPERASI TERHADAP INDEKS TABEL */
/* */
/***************************************************************/
boolean IsIdxValid(TabInt T, IdxType i);
/* Mengirimkan true apabila i merupakan index yang valid bagi */
/* TabInt T, yaitu IdxMin <= i <= IdxMax. */
boolean IsIdxEff(TabInt T, IdxType i);
/* Mengirimkan true apabila i merupakan indeks yang efektif */
/* berisi suatu nilai, yaitu idxmin <= i <= NEff. */
/***************************************************************/
/* */
/* PREDIKAT TABEL */
/* */
/***************************************************************/
boolean IsEmpty(TabInt T);
/* Mengirimkan true apabila T merupakan TabInt yang kosong, */
/* yaitu apabila T.NEff == 0. */
boolean IsFull(TabInt T);
/* Mengirimkan true apabila T merupakan TabInt yang penuh, */
/* yaitu apabila T.NEff == IdxMax. */
/***************************************************************/
/* */
/* ISI TULIS, HUBUNGAN DENGAN I/O DEVICE */
/* */
/***************************************************************/
void PrintTabel(TabInt T);
/* Proses : Melakukan traversal sebanyak banyaknya elemen */
/* efektif, dan menuliskan nilainya ke layar. */
/* I.S : T boleh kosong. */
/* F.S : Elemen tabel ditulis ke layar, jika tidak kosong. */
/* jika tabel kosong menampilkan "Tabel Kosong." */
void IsiTabel(TabInt* T, ElmtType N);
/* Proses : Melakukan traversal sebanyak N untuk mengisi nilai */
/* elemen-elemen Tabel T dengan 2 kali indexnya */
/* I.S : Sembarang. */
/* F.S : Tabel T terdefinisi. */
/***************************************************************/
/* */
/* NILAI EKSTRIM */
/* */
/***************************************************************/
ElmtType ValMax(TabInt T);
/* Mengirimkan nilai maksimum TabInt T. */
/* Pre Condition : Tabel tidak kosong. */
ElmtType ValMin(TabInt T);
/* Mengirimkan nilai minimum TabInt T. */
/* Pre Condition : Tabel tidak kosong. */
/***************************************************************/
/* */
/* INDEX NILAI EKSTRIM */
/* */
/***************************************************************/
ElmtType IdxValMax(TabInt T);
/* Mengirimkan index nilai maksimum TabInt T. */
/* Pre Condition : Tabel tidak kosong. */
ElmtType IdxValMin(TabInt T);
/* Mengirimkan index nilai minimum TabInt T. */
/* Pre Condition : Tabel tidak kosong. */
ElmtType NBElmt (TabInt T);
ElmtType IdxLast(TabInt T);
boolean IsEqual(TabInt T1, TabInt T2);
ElmtType SearchIdx(TabInt T, ElmtType X);
boolean SearchBool(TabInt T, ElmtType X);
TabInt CopyTab(TabInt Tin, TabInt Tout);
TabInt CopyTabInvers(TabInt Tin, TabInt Tout);
boolean IsSimetris (TabInt T);
#endif