سورس استفاده از لیست پیوندی (Linked List) به زبان C

using linked list in c 7706 تصویر

سورس استفاده از لیست پیوندی (Linked List) به زبان C

در این بخش سورس استفاده از لیست پیوندی (Linked List) به زبان C را برای شما آماده کرده ایم که با استفاده از نرم افزار Visual Studio با زبان برنامه نویسی C نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه اجرا شدن پروژه را مشاهده کنید.

توضیحات پروژه

لیست پیوندی (یا همان Linked List) یک نوع ساختار داده خطی است که برخلاف آرایه ها در آن عناصر به صورت پشت سر هم در حافظه قرار نمی گیرند. در لیست پیوندی هر یک از گره ها به گره بعد از خود اشاره می کند. شکل زیر نشان دهنده این موضوع است:

using linked list in c 7706 5 تصویر

در این پروژه، بعد از اجرا شدن برنامه یک منوی ۶ گزینه ای شامل موارد زیر به کاربر نمایش داده می شود:

  • Add
  • Delete
  • Search
  • Sort
  • Print
  • Quit

در لیست فوق، گزینه اول برای افزودن گره جدید به لیست استفاده می شود. گزینه دوم برای حذف یک گره از لیست استفاده می شود. گزینه سوم برای جستجوی یک گره در لیست استفاده می شود. گزینه چهارم محتویات لیست را مرتب می کند. گزینه پنجم محتویات لیست را در خروجی چاپ می کند. گزینه آخر هم برای خروج از برنامه استفاده می شود.

شما با مشاهده سورس کد این پروژه می توانید نحوه کار با اشاره گرها، تخصیص حافظه، آزاد سازی حافظه و غیره آشنا شده و مهارت خودتان در برنامه نویسی ارتقا دهید.

نکته! این پروژه با استفاده از نرم افزار Visual Studio 2019 نوشته شده است.

قسمت های از سورس کد

#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
typedef enum {
	ADD     = 1,
	DELETE  = 2,
	SEARCH  = 3,
	SORT    = 4,
	PRINT   = 5,
	QUIT    = 6
} Options;
typedef struct Node {
	int data;
	struct Node* next;
} Node;
Node* head;
Node* front;
short isAppRunning = TRUE;
int pause();
int clearScreen();
void printMenu();
void handleUserSelection();
void getDataFromInput(const char*, int*);
void addNode();
void deleteNode();
void searchNode();
void swap(Node*, Node*);
void sortList();
void printList();
int main() {
	do {
		printMenu();
		handleUserSelection();
	} while (isAppRunning);

	return 0;
}
void deleteNode() {
	if (head == NULL)
		return;
	Node* node = head;
	Node* prevNode = NULL;
	int data = 0;
	short isDeleted = FALSE;
	getDataFromInput("Enter node data to delete >>> ", &data);
	if (node->data == data) {
		head = node->next;
		free(node);
		isDeleted = TRUE;
	}
	else {
		while (node != NULL && node->data != data) {
			prevNode = node;
			node = node->next;
		}
		if (node && prevNode && node != NULL) {
			prevNode->next = node->next;
			isDeleted = TRUE;
		}
		if (front->data == data) {
			free(front);
			front = prevNode;
		}
	}
	if (isDeleted)
		printf("%d Has Been Deleted\n", data);
	else
		printf("%d Not Found\n", data);
}
void printList() {
	Node* node = head;
	while (node != NULL) {
		printf("{%d}", node->data);

		if (node->next != NULL)
			printf(" => ");

		node = node->next;
	}
	printf("\n");
}

نوشته سورس استفاده از لیست پیوندی (Linked List) به زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *