Example #1
0
/*!\en
 * Delets group with child elements and groups.
 * \param idg (in) - id deleted group.
 * \param listDelId (in,out) - list of id deleted elements and groups.
 \_en \ru
 * Физически удаляет группу со всеми ее дочерними элементами и группами.
 * \param idg (in) - идентификационный номер выделенной для удаления группы.
 * \param listDelId (in,out) - список идентификационных номеров выделенных для удаления элементов и групп.
 *\_ru
 */
qulonglong
aCatalogue::delGroup(qulonglong idg, Q3ValueList<qulonglong> &listDelId)
{
	aSQLTable * tg = table ( md_group );
	if ( !tg ) return 0;
	//if ( !selected( md_group ) ) return err_notselected;
	qulonglong tmp;// idg = tg->sysValue("id").toULongLong();
	groupSelect(idg);
	if ( idg )
	{

		aLog::print(aLog::Info,tr("aCatalogue delete group with id=%1").arg(idg));
	//		printf("idg=" LLU_SPEC "\n",idg);
	//	delete elements in group;
			while(selectByGroup(idg)==err_noerror)
			{
				listDelId << delElement();
			}
			while (groupByParent(idg)==err_noerror)
			{
				delGroup(GroupSysValue("id").toULongLong(), listDelId);
				//printf(">>>idg=%lu\n",tmp);
			}
	}
	tg->select(QString("id=%1").arg(idg),false);
	if(tg->first())
	{
		tg->primeDelete();
		tg->del();
		listDelId << idg;
		setSelected( false, md_group );
	}
	return idg;
}
Example #2
0
void delElement(Tree *&tr, int x)
{
	if (!tr)
		printf("NO\n");
	else if (x < tr->value)
		delElement(tr->left, x);
	else if (x > tr->value)
		delElement(tr->right, x);
	else
	{
		Tree *tmp = tr;
		if (!tr->right)
			tr = tr->left;
		else if (!tr->left)
			tr = tr->right;
		else
		{
			Tree *v = tr->left;
			if (v->right)
			{
				while (v->right->right)
					v = v->right;
				tr->value = v->right->value;
				tmp = v->right;
				v->right = v->right->left;
			}
			else
			{
				tr->value = v->value;
				tmp = v;
				tr->left=tr->left->left;
			}
	    }
		delete(tmp);
	}
}
Example #3
0
void removeElmnt(int input[], int n){
  int i=0,j=0;
  
  while(i<n){
    j=i+1;    
    while(j<n){ 
    if(input[i] == input[j]){           
      delElement(input,j,n);
      n--;
    }
    j++;
    }
    i++;
  }
}