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

رجآآآآء مساعده في ال linked list

بدأه &AbOooOd& في 28 أكتوبر 2011 · 3 رد · 719 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجوكم ياخواني عندي برنامج مكتوب بلغة الc++ وعو عباره عن القوائم المرتبطه linked list هناك اكواد في البرنامج لم استطع فهمها ساضع البرنامج كاملا لكن لاريد شرحهه كاملا فقط بعضه وسأعرضه لكم

  #include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<process.h>
using namespace std;

class list
{
	struct node
	{
		int data;
		node *link;
	}*p;
public:
	void inslast(int);
	void insbeg(int);
	void insnext(int,int);
	void delelement(int);
	void delbeg();
	void dellast();
	void disp();
	int seek(int);
	list(){
              p=NULL;
              }
	~list();
};

void list::inslast(int x)
{
	node *q,*t;
	if(p==NULL)
	{
		p=new node;
		p->data=x;
		p->link=NULL;
	}
	else
	{
		q=p;
		while(q->link!=NULL)
			q=q->link;
		t=new node;
		t->data=x;
		t->link=NULL;
		q->link=t;
	}
	cout<<"Inserted successfully at the end.";
	disp();
}

void list:: insbeg(int x)
{
	node *q;
	q=p;
	p=new node;
	p->data=x;
	p->link=q;
	cout<<" Inserted successfully at the begining..";
	disp();
}


void list::delelement(int x)
{
	node *q,*r;
	q=p;
	if(q->data==x)
	{
		p=q->link;
		delete q;
		return;
	}
	r=q;
	while(q!=NULL)
	{
		if(q->data==x)
		{
			r->link=q->link;
			delete q;
			return;
		}
		r=q;
		q=q->link;
	}
	cout<<" Element u entered   "<<x<<"    is not found..";
}

void list:: delbeg()
{
	cout<<"The list before deletion:";
	disp();
	node *q;
	q=p;
	if(q==NULL)
	{
		cout<<"No data is present..";
		return;
	}
	p=q->link;
	delete q;
	return;
}


void list:: dellast()
{
	cout<<"The list before deletion:";
	disp();
	node *q,*t;
	q=p;
	if(q==NULL)
	{
		cout<<"There is no data in the list..";
		return;
	}
	if(q->link==NULL)
	{
		p=q->link;
		delete q;
		return;
	}

	while(q->link->link!=NULL)
		q=q->link;
	q->link=NULL;
	return;
}

list::~list()
{
	node *q;
	if(p==NULL) return;
	while(p!=NULL)
	{
		q=p->link;
		delete p;
		p=q;
	}
}

void list::disp()
{
	node *q;
	q=p;
	if(q==NULL)
	{
		cout<<"No data is in the list..";
		return;
	}
	cout<<"The items present in the list are :";
	while(q!=NULL)
	{
		cout<<"	"<<q->data;
		q=q->link;
	}
}

void list :: insnext(int value,int position)
{
	node *temp,*temp1;
	temp=p;
	if(temp1==NULL)
	{
		temp1= new node;
		temp1->data=value;
		temp1->link=NULL;
		p=temp1;
		return;
	}
	for(int i=0;((i<position)&&(temp->link!=NULL)) ;i++)
	{
		if(i==(position-1))
		{
			temp1= new node;
			temp1->data= value;
			temp1->link=temp->link;
			temp->link=temp1;
		}
		temp=temp->link;
	}
	cout<<"Inserted successfully at the position.."<<position;
	disp();
}


int list::seek(int value)
{
	node *temp;
	temp=p;
	int position=0;
	while(temp!=NULL)
	{
		if(temp->data==value)
			return position+1;
		else
		{
			temp=temp->link;
			position=position+1;
		}
	}
	cout<<"Element "<<value<<" not found";
	return 0;
}
void main()
{
list l;
int ch,v,p,ps;
do
{

	cout<<"Operations on List..";
	cout<<"1.Insertion2.Deletion3.Display4.Seek5.Exit";
	cout<<"Enter ur choice:";
	cin>>ch;

	switch(ch)
	{
	case 1:
		cout<<"1.Insertion at begining2.Insertion at the end";
		cout<<"3.Insertion after the mentioned position";
		cout<<" Enter ur choice:";
		cin>>ps;
		cout<<"Enter the value to insert:";
		cin>>v;
		switch(ps)
		{
			case 1:
				l.insbeg(v);
				break;
			case 2:
				l.inslast(v);
				break;
			case 3:
				cout<<"Enter the position to insert the value:";
				cin>>p;
				l.insnext(v,p);
				break;

			default:
				cout<<" The choice is invalid";
				return;
		}
	break;

	case 2:
		cout<<"1.Delete the first element 2.Delete the last element";
		cout<<"3.Enter the element to delete from the list";
		cout<<"Enter ur choice:";
		cin>>ps;
		switch(ps)
		{
			case 1:
				l.delbeg();
				cout<<"The list after deletion:";l.disp();
				break;
			case 2:
				l.dellast();
				cout<<"The list after deletion:";l.disp();
				break;
			case 3:
				l.disp();
				cout<<"Enter the element to delete :	";
				cin>>v;
				l.delelement(v);
				cout<<"The list after deletion:";l.disp();
				break;

			default:
				cout<<"The option is invalid..";
				break;
		}
	break;

	case 3:
		l.disp();
		break;

	case 4:
		l.disp();
		cout<<"Enter the element to search:";
		cin>>v;
		cout<<"The position of the element "<< v<<"  is "<<l.seek(v);
		getch();
		break;

	case 5:
		exit(1);

	default:
		cout<<"The option is invalid...";
		return;
	}
	getch();
}while(ch!=5);
getch();
return;
}

أنا فقط اريد شرح هذا

 void list::delelement(int x)
{
	node *q,*r;
	q=p;
	if(q->data==x)
	{
		p=q->link;
		delete q;
		return;
	}
	r=q;
	while(q!=NULL)
	{
		if(q->data==x)
		{
			r->link=q->link;
			delete q;
			return;
		}
		r=q;
		q=q->link;
	}
	cout<<" Element u entered   "<<x<<"    is not found..";
}

وأيضا هذا الكود

 void list:: dellast()
{
	cout<<"The list before deletion:";
	disp();
	node *q,*t;
	q=p;
	if(q==NULL)
	{
		cout<<"There is no data in the list..";
		return;
	}
	if(q->link==NULL)
	{
		p=q->link;
		delete q;
		return;
	}

	while(q->link->link!=NULL)
		q=q->link;
	q->link=NULL;
	return;
}

list::~list()
{
	node *q;
	if(p==NULL) return;
	while(p!=NULL)
	{
		q=p->link;
		delete p;
		p=q;
	}

وهذا الكود

 void list :: insnext(int value,int position)
{
	node *temp,*temp1;
	temp=p;
	if(temp1==NULL)
	{
		temp1= new node;
		temp1->data=value;
		temp1->link=NULL;
		p=temp1;
		return;
	}
	for(int i=0;((i<position)&&(temp->link!=NULL)) ;i++)
	{
		if(i==(position-1))
		{
			temp1= new node;
			temp1->data= value;
			temp1->link=temp->link;
			temp->link=temp1;
		}
		temp=temp->link;
	}
	cout<<"Inserted successfully at the position.."<<position;
	disp();
}

فقط الثلاث دوال السابقه اريد شرحها من البرنامج السابق ,,,, ارجوكم لاتخيبوا ظني بكم :cry: :cry: :cry: :cry:

#2

أرجوكم انا جداً محتاج للشرح أين المبرمجين :sad:

#3

السلام عليكم ورحمة الله وبركاته

العفو اخي وعذرا ع التاخير بس ماكان عندي نت

هل لازلت محتاج الشرح ام لا

ارجوا الرد

ربي يحفظك

#4
مبرمج بلا حدود كتب:

السلام عليكم ورحمة الله وبركاته

العفو اخي وعذرا ع التاخير بس ماكان عندي نت

هل لازلت محتاج الشرح ام لا

ارجوا الرد

ربي يحفظك

ايه والله ياخوي محتااااجه جدا أعتذر لك بس كنت مشغول اعتذر لك مره ثانيه والله يجزاك خير يآآآرب

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