Python Forum

Full Version: LinkedList by User Input
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello everyone, my name is Santiago Big Grin .

I have to write a program that reads a sequence of numbers one by one and stores them in a LinkedList.

This program must meet certain conditions:

1. The input must be written by the user.

2. The last element of the input must be -1 to end the sequence (which does not belong to the linked list anymore.)

3. The inputs must be written one by one, ending with -1.

Examples:
Input: 1
3
4
7
5
6
-1
Output: 1 3 4 7 5 6

Input: -1
Output:

I have all the code already written, but I have programmed the input differently, since I do not know how to perform condition 2 and 3. If someone can help me write this last part, I would appreciate it.

Thank you very much for the help.

P.S.: There is my problem:
a_llist = LinkedList()
n = int(input('How many elements would you like to add? '))
for i in range(n):
    data = int(input('Enter data item: '))
    a_llist.append(data)
print('The linked list: ', end = '')
a_llist.display()
FULL CODE:
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 is not None:
            print(current.data, end = ' ')
            current = current.next

# There are my problem with user input:

a_llist = LinkedList()
n = int(input('How many elements would you like to add? '))
for i in range(n):
    data = int(input('Enter data item: '))
    a_llist.append(data)
print('The linked list: ', end = '')
a_llist.display()
You should not be asking for how many elements. Input is supposed to end when the user enters -1. At least that is my interpretation of the instructions. Other than that it appears to work.
(Mar-03-2021, 06:58 PM)deanhystad Wrote: [ -> ]You should not be asking for how many elements. Input is supposed to end when the user enters -1. At least that is my interpretation of the instructions. Other than that it appears to work.

Exacly, sorry for ask too many things. You are right I need to user inputs and should end when he put -1. 1as you can see I did a user input but I don't know how to write the condition.
What will data be when the user enters -1? How can you use that information to break out of the input loop?
(Mar-03-2021, 07:49 PM)deanhystad Wrote: [ -> ]What will data be when the user enters -1? How can you use that information to break out of the input loop?

The program should work as follows for inputs:

The user:

Type 3 and press enter.
Type 4 and press enter.
Type 7 and press enter.
Type -1 and press enter. The program starts and gives the following output:

3 4 7

The -1 is used to start the program and start creating the LinkedList. The program should not write -1 to the result.

My problem starts in the line #25 because I don't know how to write this part of the program.
You are obviously incorrect in your assessment since the code starting at line #25 is nearly correct. You just need to figure out how to exit the loop when -1 is entered (data == -1). This is an easy problem to solve, so if you are finding it difficult it likely means you are approaching the problem the wrong way. Maybe you should do some research on different ways to end a loop.