05 - | Java - Data Structures For Beginners | - | Doubly Linked List |

preview_player
Показать описание
by : Dr. Mohamed El Desouki
شرح تراكيب البيانات
Doubly Linked List
مرفق الكود الخاص بكل فديو فى التعليقات
Рекомендации по теме
Комментарии
Автор

package doublelinkedlists;

class Node {
int data;
Node next;
Node prev;

Node(int data) {
this.data = data;
this.next = null;
this.prev = null;
}
}

class DoublyLinkedList {
Node head;

// Insertion at the end
public void append(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
return;
}
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
newNode.prev = current; // Set previous pointer
}
// Traverse the list forward
public void traverseForward() {
Node current = head;
while (current != null) {
System.out.print(current.data + " -> ");
current = current.next;
}
System.out.println("null");
}

// Traverse the list backward
public void traverseBackward() {
Node current = head;
if (current == null) return;
// Go to the last node
while (current.next != null) {
current = current.next;
}
// Traverse backward
while (current != null) {
System.out.print(current.data + " -> ");
current = current.prev;
}
System.out.println("null");
}
// Insertion at a specific position
public void insertAtPosition(int data, int position) {
Node newNode = new Node(data);
if (position == 0) { // Inserting at head
newNode.next = head;
if (head != null) {
head.prev = newNode;
}
head = newNode;
return;
}
Node current = head;
int index = 0;
// Traverse to the position just before the specified position
while (current != null && index < position - 1) {
current = current.next;
index++;
}

if (current == null) {
System.out.println("Position is out of bounds.");
return;
}

newNode.next = current.next;
newNode.prev = current; // Set previous pointer
if (current.next != null) {
current.next.prev = newNode; // Set next node's previous pointer
}
current.next = newNode;
}

// Deletion by value
public void delete(int data) {
if (head == null) {
System.out.println("List is empty. Cannot delete.");
return; }

Node current = head;
// Check if the node to be deleted is the head node
if (current.data == data) {
if (current.next == null) { // Only one node
head = null; // List becomes empty
} else {
head = current.next; // Move head to the next node
head.prev = null; // Update previous of new head
}
return;
}
// Traverse the list to find the node to delete
while (current != null) {
if (current.data == data) {
// Bypass the current node
current.prev.next = current.next; // Link previous node to next node
if (current.next != null) {
current.next.prev = current.prev; // Link next node to previous node
}
return;
}
current = current.next;
}

System.out.println("Value " + data + " not found.");
}
// Search for a value
public boolean search(int data) {
Node current = head;
while (current != null) {
if (current.data == data) {
return true;
}
current = current.next;
}
return false;
}

}

public class DoublyLinkedListDemo {
public static void main(String[] args) {
DoublyLinkedList list1 = new DoublyLinkedList();
list1.append(10);
list1.append(20);
list1.append(30);
System.out.println("Doubly Linked List 1:");
list1.traverseForward();
list1.traverseBackward();
list1.insertAtPosition(5, 0);
list1.insertAtPosition(25, 3);
list1.traverseForward();
list1.delete(20);
list1.traverseForward();
list1.delete(75);

}
}

DesoukiEgypt
Автор

يا ليت لو تكمل وتغطي كل مادة الداتا ستركشر
جزاك الله خيرا

abdalrahembledae
Автор

انا ورايا امتحان بكرا وبسمع فديوهات حضرتك اللي بقالها ١١ سنة عنc++ حقيقي شكرا جدا ليك ويجعل هذا العمل في ميزان حسناتك❤❤

ABDELRAHMAN_sami
Автор

انا ادرسها الترم هذا وتعبت ادور احد يشرحها نفس منهجنا لين ما شفتك شارحها اتمنى تكمل الشرح والله يسعدك يا دكتور دنيا واخرة ويجزاك خير ❤️❤️❤️

MonIl-ch
Автор

تخيل يا دكتور ان لسه في طلبة بتسمع لحضرتك كورس اساسيات ال java و ال oop - جزاك الله كل خير يا دكتور

Alaasecondary
Автор

الله ينور يا بشمهندس شرح حلو جدا ما شاء الله ارجو من حضرتك تكملت الdata structure

zaynfarrag
Автор

جزاك الله جااام الخير فى الدنيا والاخرة❤❤❤

Nahla_OJ
Автор

جزاك الله عنا كل خير يا دكتور ، ياريت لو حضرتك تكمل الكورس قبل الامتحانات لأننا محتاجين باقي الكورس جدا

amirfahmy_maro
Автор

ياريت حضرتك تكمل وتشرح sort, stuck, queue,

علداللهمحمددراز
Автор

بتمنى حضرتك تكمل شرح المقرر و جزاك الله كل خير

naneabase
Автор

دكتور ان شاء لله تكون بخير وفصحه تامه ، اتمنى ترجع تنزل لو انك بخير وبصحه ، قبل الفاينل ، وشغل الاعلانات عشان نفيدك ولو بقدر ضئيل

جونيمايكل-عس
Автор

ياريت تكمل شرح معانا يا بشمهندس ومتنساناش عشان كلنا محتاجين باقي البلاي ليست

One_touch.
Автор

بارك الله فيك يا استاذ ، هل تستطيع شرح Circular Linked List

hajeralgudarey
Автор

بلييييز كمّل الشرح الفاينل هذا الاسبوع 🛑🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

rsh.
Автор

يعطيك العافية يادكتور ممكن اعرف اذا رح تكمل سلسلة الماده هذي او لا؟

Malak-hqjs
Автор

السلام عليكم
التكملة فين يا دكتور منتظرين 😊

omaribrahim
Автор

دكتور انا اتعلمت c++ وبفضل الله ثم حضرتك بقى عندي فهم لمعظم المفاهيم الاساسية في اللغة و دلوقتي انا بتعلم لغة جديدة اللي هيا c# فكنت عاوز نصيحتك ازاي اتعلم كل المفاهيم اللي عندي فيه وشكرا جدا لحضرتك على فديوهاتك الرائعة❤

afatouh
Автор

سلام عليكم
انا محتاج ادرس قواعد بيانات من القناه دي بس مش عارف ابدأ من اي playlist عشان هما كتير ف يريو حضرتك ترشدني ابدأ بأي playlist في الاول واكمل منين وكده.

abdo.nassar
Автор

مش ممكن أدكترة اننا نعمل head و tail
عشان يكون الترتيب التنازلى اسهل

ziadyasser
Автор

اترك اثر طيب لك🌧🌴
تسبيح ،استغفار ،دعاء ،ذكر ،آية📿
أستغفرالله الذي لاإله إلاهو الحي القيوم التواب الرحيم🌿

HendAhmed-yh
join shbcf.ru