How to Swap List Elements Without Using Key in Python
In this tutorial, we will learn how to program "How to Swap List Elements Without Using a Key in Python." The objective is to swap list elements without using keys in a linked list. This tutorial will guide you step by step through the process of swapping list elements without using keys. By the end of this tutorial, you will have a solid understanding of how to implement this task effectively in Python, helping you strengthen your problem-solving abilities and improve your coding skills.
This topic is straightforward and easy to understand. Simply follow the instructions provided, and you will complete it with ease. The program will guide you step by step through the process of swapping list elements without using a key in a linked list. So, let's dive into the coding process!
Getting Started:
First you will have to download & install the Python IDLE's, here's the link for the Integrated Development And Learning Environment for Python https://www.python.org/downloads/.
Creating Main Function
This is the main function of the application. The following code will display a simple GUI in terminal console that will display program. To do this, simply copy and paste these blocks of code into the IDLE text editor.- class Node:
- def __init__(self, data):
- self.data = data
- self.next = None
- class LinkedList:
- def __init__(self):
- self.head = None
- self.last_node = None
- def append(self, data):
- if self.last_node is None:
- self.head = Node(data)
- self.last_node = self.head
- else:
- self.last_node.next = Node(data)
- self.last_node = self.last_node.next
- def display(self):
- current = self.head
- while current:
- print(current.data, end=' ')
- current = current.next
- print()
- def get_node(self, index):
- current = self.head
- for _ in range(index):
- if current is None:
- return None
- current = current.next
- return current
- def get_prev_node(self, ref_node):
- current = self.head
- while current and current.next != ref_node:
- current = current.next
- return current
- def interchange(llist, n, m):
- if n == m:
- return
- node1 = llist.get_node(n)
- node2 = llist.get_node(m)
- if node1 is None or node2 is None:
- print("Invalid indices.")
- return
- prev_node1 = llist.get_prev_node(node1)
- prev_node2 = llist.get_prev_node(node2)
- # Update previous nodes
- if prev_node1:
- prev_node1.next = node2
- else:
- llist.head = node2
- if prev_node2:
- prev_node2.next = node1
- else:
- llist.head = node1
- # Swap next pointers
- node1.next, node2.next = node2.next, node1.next
- while True:
- print("\n============= Swap List Elements Without Using Key =============\n")
- a_llist = LinkedList()
- data_list = input(
- "Please enter the elements in the linked list (space-separated): "
- ).split()
- for data in data_list:
- a_llist.append(int(data))
- ans = input(
- "Enter the two indices of elements to swap (space-separated): "
- ).split()
- n = int(ans[0])
- m = int(ans[1])
- interchange(a_llist, n, m)
- print("The new list:")
- a_llist.display()
- # Ask user if they want to try again
- opt = input("\nDo you want to try again? (yes/no): ").strip().lower()
- if opt == "no":
- print("Exiting program...")
- break
- elif opt != "yes":
- print("Invalid choice. Exiting program...")
- break
This program demonstrates how to swap two elements in a singly linked list without using their data values (keys). It builds a linked list from user input and allows the user to specify two indices representing the positions of the nodes to be swapped. The program locates the target nodes and their previous nodes, then updates the `next` pointers to interchange their positions safely, including handling cases where one of the nodes is the head. After performing the swap, the updated linked list is displayed, and the program provides an option to repeat the process or exit.
Output:
There you have it we successfully created How to Swap List Elements Without Using Key in Python. I hope that this simple tutorial help you to what you are looking for. For more updates and tutorials just kindly visit this site. Enjoy Coding!
More Tutorials for Python Language