优客文库提供全面的范文格式和文档模板,包括申请书、合同、借据、证明、求职信等,助力您快速撰写专业文档。

构建一个社团链表,能够实现插入,打印,删除功能,插入是在最末尾插入,打印全部数据,删除指定的节点。要求有不少于6个社团,社团至少要有社团名字,人数,类型字段,数据需要用户交互输入,不能提前写死

来自 广东省广州市 的网友 时间: 热度:°C 加入收藏 我要投稿 点赞()
首先,我们需要定义一个社团类,包含社团名字、人数和类型字段。然后,我们需要实现插入、打印和删除功能。

解析:
1. 定义社团类,包含社团名字、人数和类型字段。
2. 实现插入功能:在链表末尾插入一个新的社团对象。
3. 实现打印功能:遍历链表,打印每个社团的信息。
4. 实现删除功能:根据用户输入的社团名字删除对应的社团对象。
5. 用户交互输入数据。

代码如下:

```python
class Club:
def __init__(self, name, num, type):
self.name = name
self.num = num
self.type = type
self.next = None

class ClubChainList:
def __init__(self):
self.head = None

def insert(self, club):
if not self.head:
self.head = club
else:
cur = self.head
while cur.next:
cur = cur.next
cur.next = club

def print_all(self):
cur = self.head
while cur:
print(f"{cur.name} | {cur.num} | {cur.type}")
cur = cur.next

def delete(self, name):
if not self.head:
return
if self.head.name == name:
self.head = self.head.next
return
cur = self.head
while cur.next:
if cur.next.name == name:
cur.next = cur.next.next
return
cur = cur.next

def main():
club_chain_list = ClubChainList()
clubs = [("篮球社", "20", "体育"), ("编程社", "15", "科技"), ("音乐社", "10", "艺术")]
i = 0
while i < len(clubs):
club_info = input(f"请输入第{i + 1}个社团的信息(姓名|人数|类型):")
name, num, type = club_info.split("|")[0], club_info.split("|")[1], club_info.split("|")[2]
club = Club(name, num, type)
club_chain_list.insert(club)
i += 1
print("当前社团链表:")
club_chain_list.print_all()
d = input("是否删除指定社团?(y/n):")
if d == "y":
club_chain_list.delete(input("请输入要删除的社团名称:"))
print("删除后的社团链表:")
club_chain_list.print_all()
i += 1
print(f"第{i}个社团的信息:")
club_chain_list.print_all()

if __name__ == "__main__":
main()
```

运行上述代码,根据提示输入社团信息和是否删除指定社团,即可完成操作。
221381
领取福利

微信扫码领取福利

微信扫码分享