Untitled

 avatar
unknown
plain_text
2 years ago
971 B
5
Indexable
bool del_e(int &n, elem*& start)
{
	if (start != NULL)
	{
		if (start->next == NULL)
		{
			n = start -> key;
			delete start;
			start = NULL;
			return true;
		}
		else
		{
			elem *p = start;
			elem *q =p;
			while (p->next != NULL)
			{
				q = p;
				p = p ->next;
			}
			n = p->key;
			delete p;
			p = NULL;
			q ->next = NULL;
			return true;
		}
	}
	else return false;
}

bool del_n(int &n, elem*& start)
{
	if (start != NULL)
	{
		if (start -> key = n) //first elem
		{
			elem * p = start;
			start = start->next;
			delete p;
			p = NULL;
			return true;
		}
		if(start ->next != NULL)
		{
			elem *p = start;
			elem *q = p;
			while (p->key != n && p->next != NULL)
			{
				q = p;
				p = p->next;
			}
			if (p ->key == n)
			{
				n = p->key;
				q ->next = p->next;
				delete p;
				p = NULL;
				return true;
			}
			else return false;
		}
		else return false;
	}
	else return false;
}