Пример #1
0
void ASInsert (tASTable *Tab, int Key, int Content) {
/* Vlo¾í novou polo¾ku s obsahem Content a klíèem Key do tabulky Tab.
**
** Pokud by vlo¾ením dal¹í polo¾ky do¹lo k pøeplnìní Tab (pokud by ne¹lo
** pøi dal¹ím vyhledávání ulo¾it zará¾ku), volejte proceduru ASError()
** a novou polo¾ku nevkládejte.
**
** Pokud daná polo¾ka (udaná klíèem Key) v poli ji¾ existuje, pøiøadí se do
** odpovídající slo¾ky záznamu nový obsah. Pøi vyhledávání ji¾ existující 
** polo¾ky vyu¾ijte døíve implementovanou funkci ASSearch (to znamená, ¾e se
** existující a modifikovaná polo¾ka automaticky posune dopøedu).
*/

  int index;  //Pomocná promìnná pro vkládání

  if (ASSearch(Tab, Key, &index)) {  //Pokud u¾ je v poli polo¾ka s klíèem Key,
    Tab->arr[index].Cont = Content;  //nastaví se jí nový obsah
  }
  else {  //Pokud v poli polo¾ka s klíèem Key je¹tì není
    if ((Tab->last + 1) <= (ASSize - 2)) {  //a pokud není tabulka plná,
      Tab->arr[Tab->last + 1].Key = Key;  //vlo¾ím na dal¹í pozici klíè Key
      Tab->arr[Tab->last + 1].Cont = Content;  //a vlo¾ím obsah dal¹í pozice
      Tab->last = Tab->last + 1;  //Musím zvý¹it index posledního prvku o 1
    }
    else {  //Pokud je tabulka plná,
      ASError();  //zavolám funkci ASError()
    }
  }
}
Пример #2
0
int test_ASSearch (tASTable *TempTable, int Content, int *ind) {
	solved=TRUE;
	int found;
        ASCompNum = 0;
        found = ASSearch(TempTable, Content, ind);
	if (!solved)	{
		printf("Operace ASSearch() nebyla implementovana \n");
		return(FALSE);
	}
	else	{
		PrintElement(TempTable);
                printf("Hodnota nalezena: ");
                if (found)
                   printf("ANO\n");
                else
                   printf("NE\n");
                printf("Index vr�cen: %d\n", *ind);
                printf("Po�et proveden�ch porovn�n�: %d\n", ASCompNum);
	        printf("=========================================================\n");
                ASCompNum = 0;
		return(TRUE);
	}
}