Пример #1
0
void llist::deleteIth(int I, el_t& Old)
{
          // case(exception)
          // ---------------
          if(I < 1 || I > Count)
            throw OutOfRange();

          // case(I is the front)
          // --------------------
          else if(I == 1)
            deleteFront(Old);

          // case(I is the rear)
          // -------------------
          else if(I == Count)
            deleteRear(Old);

          // case(I is any node between front and rear)
          // ------------------------------------------
          else
          {
            Node *temp = Front;
            Node *del;

            for(int j = 1; j < I - 1; j++)
              temp = temp->Next;

            del = temp->Next;
            Old = del->Elem;
            temp->Next = del->Next;
            delete del;
            Count--;
          }
}
Пример #2
0
void deleteItem()
{
	struct node *before;
	struct node *search;
	struct node *current;
	
	int countbefore=1;
	int countafter=0;
	int countlist=0;
	int countitem=0;
	int item=10;
	
	
	while(item<0||item>9)
	{
		printf("Enter number to be deleted: ");
		scanf("%d",&item);
	}

	
	current=head;
	while(current->next!=NULL)
	{
		current=current->next;
		countlist++;
	}
	//printf("%d\n",countlist);
	search=head;
	while(item!=search->data)			//search for the node to be deleted
	{
		search=search->next;
		countitem++;
	}
	
	if(countitem==0)		//if ang e delete kay naa sa pinaka una
	{
		deleteFront();
	}
	else if(countitem==countlist)		// if ang e delete kay naa sa pinaka tomoy
	{
		deleteRear();
	}
	else
	{
		before=head;
		while(countbefore<countitem)	//point the before pointer to the node before the node to be deleted
		{
			before=before->next;
			countbefore++;
		}
		current=before->next->next;		
		before->next=current;		//delete the node to be deleted  from the list
	}
}
Пример #3
0
void askUser()
{
	int num;
	int x=10;
	int i;
	char choices;
	
	system("cls");
	printf("\n[1]-DISPLAY ARRAY\n[2]-INSERT REAR\n[3]-INSERT FRONT\n[4]-INSERT INTO\n[5]-DELETE FRONT\n[6]-DELETE REAR\n[7]-DELETE ITEM\n[8]-DELETE ALL ITEM\n[9]-MAKE UNIQUE\n");
	choices=getch();

	switch(choices)
	{
		case '1':
			displayArray();
			getch();	
			askUser();
			break;
		case '2':
			num=askNum();
			for(i=0;i<num;i++)
			{
				while(x<0||x>9)
				{
					printf("Enter number: ");
					scanf("%d",&x);
				}
				insertRear(x);
				x=10;
				displayArray();
			}
			getch();
			askUser();
			break;
		case '3':
			num=askNum();
			for(i=0;i<num;i++)
			{
				while(x<0||x>9)
				{
					printf("Enter number: ");
					scanf("%d",&x);
				}
				insertFront(x);
				x=10;
				displayArray();
			}
			getch();
			askUser();
			break;
		case '4':
			displayArray();
			insertInto();
			displayArray();
			getch();
			askUser();
			break;
		case '5':
			deleteFront();
			displayArray();
			getch();
			askUser();
			break;
		case '6':
			deleteRear();
			displayArray();
			getch();
			askUser();
			break;
		case '7':
			displayArray();
			deleteItem();
			displayArray();
			getch();
			askUser();
			break;
		case '8':
			displayArray();
			deleteAllItem();
			displayArray();
			getch();
			askUser();
			break;
		case '9':
			displayArray();
			makeUnique();
			displayArray();
			getch();
			askUser();
			break;
		default:
			getch();
			break;
	}
}