من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید
کد لیست پیوندی c++
کد لیست پیوندی c++

کد لیست پیوندی c++

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

 

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

 

کد لیست پیوندی c++

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

لیست یوندی یا 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 :D " << 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();
}

 

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

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