الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دالة الحذف من binary search tree ..

مغلق
بدأه mkd في 15 ديسمبر 2006 · 0 رد · 668 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1
private  BTNode deleteElement(int a,BTNode curNode)
	{
		BTNode s,q,p;

		if (curNode==null)
		return curNode;

		HasId curObject =(HasId)curNode.getInfo();
		if (a>curObject.getId())
		{
		 curNode=deleteElement(a,curNode.getRight());	
		 return curNode;
		}
		else if (a<curObject.getId())
		{
			curNode=deleteElement(a,curNode.getLeft());
			return curNode;
		}
		else
		{

			q=curNode;
			s=curNode;

			if (q.getRight()==null)
			curNode=q.getLeft();

			else if (q.getLeft()==null)
			curNode=q.getRight();


				else{

			p=q.getRight();

			while (p.getLeft()!=null)
			{
				s=p;
				p=p.getLeft();
			}

			curNode=p;
			curNode.setLeft(q.getLeft());

			s.setLeft(p.getRight());

			if (q.getLeft()==p)
			curNode.setRight(q.getRight());
			else
			curNode.setRight(p.getRight());
			}



			return curNode;

		}

	}

	public void delete(int a)
	{
		deleteElement(a,root);
	}

هذا الموضوع مغلق.

مواضيع مشابهة