采用头插法和尾插法创建一个单链表。假设链表中的数据元素均为整数。第一行输入2个整数,第1个为创建方法(1为头插法,2为尾插法),第2个为链表的长度。创建好的单链表,若果为空链表,输出“list is empty!”。
时间: 2023-09-08 07:04:50 浏览: 116
尾插法创建单链表PPT学习教案.pptx
### 回答1:
好的,我可以回答这个问题。以下是使用头插法和尾插法创建单链表的代码:
头插法:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
def create_head(n):
head = Node(None)
for i in range(n):
data = int(input("请输入第{}个节点的值:".format(i+1)))
node = Node(data)
node.next = head.next
head.next = node
if head.next == None:
print("list is empty!")
else:
return head.next
```
尾插法:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
def create_tail(n):
head = Node(None)
tail = head
for i in range(n):
data = int(input("请输入第{}个节点的值:".format(i+1)))
node = Node(data)
tail.next = node
tail = node
if head.next == None:
print("list is empty!")
else:
return head.next
```
希望这个代码可以帮到你!
### 回答2:
程序如下:
```python
class ListNode:
def __init__(self, val=0):
self.val = val
self.next = None
def createList(method, length):
if length == 0:
print("list is empty!")
return None
head = None
tail = None
if method == 1:
for i in range(length):
num = int(input("请输入第{}个元素:".format(i+1)))
newNode = ListNode(num)
if head is None:
head = newNode
tail = newNode
else:
newNode.next = head
head = newNode
elif method == 2:
for i in range(length):
num = int(input("请输入第{}个元素:".format(i+1)))
newNode = ListNode(num)
if head is None:
head = newNode
tail = newNode
else:
tail.next = newNode
tail = newNode
else:
print("Invalid input!")
return head
method, length = map(int, input("请输入创建方法(1为头插法,2为尾插法)和链表的长度:").split())
head = createList(method, length)
if head is None:
print("list is empty!")
else:
print("创建好的单链表为:")
node = head
while node:
print(node.val, end=" ")
node = node.next
```
可以根据提示输入创建方法和链表的长度,然后按序输入链表元素的整数值。根据给定的创建方法,按照头插法或尾插法来创建链表。如果链表为空,输出"list is empty!",否则输出创建好的单链表。
### 回答3:
题目要求根据输入的创建方法和链表的长度,使用头插法或尾插法创建一个单链表。如果创建好的链表为空,则输出"list is empty!"。
首先,我们需要定义一个单链表节点的数据结构,包括节点的数据和指向下一个节点的指针。可以使用类来表示节点:
```
class Node:
def __init__(self, data):
self.data = data
self.next = None
```
接下来,根据输入的创建方法(1为头插法,2为尾插法)和链表的长度,我们按照不同的方法创建链表:
```python
method, length = map(int, input().split())
head = None # 单链表的头节点
# 头插法
if method == 1:
for i in range(length):
num = int(input())
new_node = Node(num)
if head is None:
head = new_node
else:
new_node.next = head
head = new_node
# 尾插法
if method == 2:
tail = None # 单链表的尾节点
for i in range(length):
num = int(input())
new_node = Node(num)
if head is None:
head = new_node
tail = new_node
else:
tail.next = new_node
tail = new_node
```
最后判断链表是否为空,如果为空则输出"list is empty!",否则可以按需求对链表进行后续操作。
```python
# 判断链表是否为空
if head is None:
print("list is empty!")
else:
# 对链表进行后续操作
# ...
```
以上就是根据题目要求使用头插法和尾插法创建单链表的算法实现。
阅读全文