Ejemplo n.º 1
0
// void delAllK(eBaris *L){ 
// 	if(countElementK(*L) != 0){
// 		int i;
// 		for(i=countElementK(*L);i>=1;i--){
// 			/*proses menghapus elemen list*/
// 			delLastK(L);   
// 		}
// 	}
// }
//prosedur tambah elemen sesuai jumlah vokal
void addByVoc(char x[], list *L){
	int angka=countVokal(x);
	if ((*L).first==NULL){//jika masih kosng
		addFirstB(angka, L);
		getTheVoc(x);//ubah dulu
		addFirstK(x, (*L).first);
	}else{//jika tidak
		int tanda;
		eBaris *prev,*elmt=(*L).first;
		tanda=0;
		//cari dulu sudah ada atau belum
		while(elmt!=NULL && tanda==0){
			if (elmt->elmt.jumlah==angka){
				getTheVoc(x);//ubah dulu
				addLastK(x, elmt);//tambah diakhir list itu
				tanda = 1;
			}
			prev=elmt;
			elmt=elmt->next;
		}
		if (tanda==0){//jika belum ada tambah diakhir
			addLastB(angka, L);
			elmt=prev->next;
			getTheVoc(x);//ubah dulu
			addFirstK(x, elmt);
			tanda=1;
		}
	}
}
Ejemplo n.º 2
0
/*=====Add After Baris=====*/
void addLastB(int jumlah, list *L){
	if((*L).first == NULL){
		/*jika list adalah list kosong*/
		addFirstB(jumlah, L);
	}else{
		/*jika list tidak kosong*/
		eBaris *elmt;
		elmt = (eBaris *) malloc (sizeof (eBaris));//alokasikan memori
		elmt->elmt.jumlah= jumlah;       
		elmt->next = NULL;
		elmt->col = NULL;
		/*mencari elemen terakhir list*/
		eBaris *last = (*L).first;
		while(last->next != NULL){ 
			/*iterasi*/
			last = last->next;
		}    
		last->next = elmt;
		elmt = NULL;
	}
}
Ejemplo n.º 3
0
void bind(char *var, Value *value, Environment *env) {
    env->bindingHead = addFirstB(var, value, env->bindingHead);
}