کد لیست پیوندی سی پلاس پلاس

کد لیست پیوندی سی پلاس پلاس
کد لیست پیوندی سی پلاس پلاس

کد لیست پیوندی سی پلاس پلاس

اصلی ترین موضوعی که در ساختمان داده ممکن است به آن برخورید مسائل مربوط به لیست پیوندی می باشد.

در این نوشته کدهای مربوط به لیست پیوندی یک طرفه و دوطرفه را برای شما به اشتراک می گذاریم.

این کدام ها به زبان سی پلاس پلاس ارائه شده است.

همراه ما باشید.

 

پیشنهاد نویسنده : کتاب آموزش سی پلاس پلاس

 

کد لیست پیوندی سی پلاس پلاس

لیست پیوندی چیست ؟

لیست یوندی یا Linked List یک نوع ساختمان داده ای می باشد که با کمک اشاره گرها پیاده سازی می شود؛ لیست پیوندی در دو نوع یک طرفه و دو طرفه می باشد.

در لیست پیوندی های یک طرفه تنها به خانه ی بعدی از لیست اشاره گر وجود دارد ولی در لیست پیوندی های دوطرفه دسترسی به عنصر قبلی نیز امکان پذیر می باشد.

اطلاعات بیشتری را از لیست پیوندی در ویکی پدیا بخوانید.

 

کد لیست پیوندی یک طرفه

#include "stdafx.h"
#include "iostream"
#include "stdlib.h"

using namespace std;


void main()
{
	struct node
	{
		int data;
		struct  node *next;
	};
	struct node *start, *p;
	p = start = (struct  node*) malloc(sizeof(node));
	cin >> start->data;
	/*for (int i = 0; i < 5; i++)
	{
		cout << p->data << endl;
		p = p->next;
	}*/
	for (int i = 0; i < 4; i++)
	{
		p->next = (struct  node*) malloc(sizeof(node));
		p = p->next;
		cin >> p->data;
		p->next = NULL;
	}
	cout << endl << "Result ::" << endl;
	p = start;
	while (p != NULL)
	{
		cout << p->data << endl;
		p = p->next;
	}
}

جستجو در لیست پیوندی یک طرفه
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"

using namespace std;


void main()
{
	struct node
	{
		int data;
		struct  node *next;
	};
	struct node *start, *p;
	p = start = (struct  node*) malloc(sizeof(node));
	cin >> start->data;

	for (int i = 0; i < 4; i++)
	{
		p->next = (struct  node*) malloc(sizeof(node));
		p = p->next;
		cin >> p->data;
		p->next = NULL;
	}
	cout << "Please Enter Number Search : ";
	int x;
	cin >> x;
	int errr = 0;
	cout << endl << "Result ::" << endl;
	p = start;
	for (int i = 0; i < 5; i++)
	{
		if (x == p->data)
		{
			cout << p->data << " - Search Item - " << " id : " << i + 1 << endl;
			errr = 1;
			break;
		}
		else 
		{
			errr = 0;
		}
		p = p->next;
	}
	if (errr == 0)
	{
		cout << " Not Found 😀 " << endl;
	}
}

 

کد لیست پیوندی دو طرفه

#include "stdafx.h"
#include "iostream"

using namespace std;

struct  node
{
	int data;
	struct  node *next;
	struct  node *last;
};
struct  node *p, *start, *q;

class Node
{
public :
	void create(int a,int b)
	{
		p = start = (struct node*)malloc(sizeof(node));
		if (b == 1)
		{
			start->data = a;
			start->last = NULL;
		}
		else
		{
			p->next = (struct node*)malloc(sizeof(node));
			p->next->last = p;
			p->next->data = a;
			p = p->next;
		}
	}
	void add(int a,int b)
	{
		while (p->data != a)
		{
			p = p->next;
		}
		q = (struct node*)malloc(sizeof(node));
		q->next = p->next;
		q->data = b;
		p->next = q;
		p->next->last = p->last;
	}
	void del(int a)
	{
		p = q = start = (struct node*)malloc(sizeof(node));
		if (start->data == a)
		{
			start = start->next;
			start->last = NULL;
			free(p);
		}
		else
		{
			while (p->data != a && p->next != NULL)
			{
				q = p;
				p = p->next;
			}
			q->next = p->next;
			p->next->last = q;
			free(p);
		}
	}
	void view()
	{
		p = start = (struct node*)malloc(sizeof(node));
		cout << start->data;
		for (int i = 1; i < 10; i++)
		{
			cout << p->data;
		}
	}
};

void main()
{
	int x;
	Node n1;
	cout << "Please Enter Number :";
	cin >> x;
	cout << endl;
	n1.create(x, 1);
	for (int i = 1; i < 10; i++)
	{
		cin >> x;
		cout << endl;
		n1.create(x, 2);
	}
	cout << "ADD 6 After 8" << endl;
	n1.add(8, 6);
	cout << "Delete 8" << endl << endl;
	n1.del(8);
	cout << "View List  :";
	n1.view();
}

 

اگر نیاز به آموزش ویدیویی سی پلاس پلاس دارید روی این لینک کلیک کنید.

اگر کدهای بهتری در اختیار دارید در بخش نظرات برای ما ارسال کنید.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]