创建一条链表,存入1~n。 链表创好后,从头到尾输出每个结点数据域的值。以观察链表建对与否。 然后,依次删除1,2,3,…… 每删一个结点,把链表输出一次。
时间: 2024-09-24 12:07:17 浏览: 57
yuesefu.rar_创建一个循环链表_按指定位置删除_循环单链表_约瑟夫环
创建链表并存储1到n的过程可以分为以下几个步骤:
1. **链表节点定义**:
首先,我们需要定义一个链表节点结构,通常包含整数值`data`和指向下一个节点的指针`next`。
```python
class Node:
def __init__(self, value=0):
self.data = value
self.next = None
```
2. **创建链表**:
创建一个函数,用于生成长度为n的链表,初始化时将每个节点的数据设置为1到n的顺序。
```python
def create_linked_list(n):
head = Node(n)
current = head
for i in range(1, n):
new_node = Node(i)
current.next = new_node
current = current.next
return head
```
3. **遍历和打印链表**:
定义一个递归或迭代的方式来遍历链表,并输出节点的值。
```python
def print_list(head):
if head is not None:
print(head.data, end=" -> ")
print_list(head.next)
```
4. **删除节点并打印链表**:
设定一个函数删除指定位置的节点,并在每次删除后打印链表。
```python
def delete_and_print(head, index):
if index <= 0:
return head
if index == 1:
return head.next
current = head
for _ in range(index - 1):
current = current.next
current.next = current.next.next
print_list(head)
```
5. **主程序**:
调用上述函数创建链表,插入1, 2, 3, ...,并删除节点并打印链表。
```python
n = 5
head = create_linked_list(n)
for i in range(1, n + 1):
print("After deleting", i, ":", end="\n")
delete_and_print(head, i)
```
运行这个程序,你可以看到链表在每次删除节点后的状态。
阅读全文