• 【Python】【数据结构】【集合的实现】


    一、set集合类的实现代码 

    1. class Set:
    2. #初始化最大的集合大小
    3. maxsize = 100
    4. #初始化存储列表和当前存储的元素个数
    5. def __init__(self):
    6. self.size=0
    7. self.data=[None]*self.maxsize
    8. #返回当前的存储的元素个数
    9. def getsize(self):
    10. return self.size
    11. #返回第i个位置的元素
    12. def get(self,i):
    13. assert i>=0 and i
    14. return self.data[i]
    15. #判断e元素在不在当前集合汇总
    16. def IsIn(self,e):
    17. for i in range(self.size):
    18. if self.data[i]==e:
    19. return True
    20. return False
    21. #往集合中添加新的元素
    22. def add(self,e):
    23. if not self.IsIn(e):
    24. self.data[self.size]=e
    25. self.size+=1
    26. #从集合中删除e
    27. def delete(self,e):
    28. i=0
    29. while iand self.data[i]!=e:
    30. i+=1
    31. if i>=self.size:
    32. return
    33. for j in range(i+1,self.size):
    34. self.data[j-1]=self.data[j]
    35. self.size-=1
    36. #拷贝
    37. def copy(self):
    38. s1=Set()
    39. s1.data=self.data
    40. s1.size=self.size
    41. return s1
    42. #将集合中的元素全部打印出来
    43. def display(self):
    44. for i in range(self.size):
    45. print(self.data[i],end=' ')
    46. print()
    47. #求两个集合的并集
    48. def union(self,s2):
    49. s3=self.copy()
    50. for i in range(s2.getsize()):
    51. e=s2.get(i)
    52. if not self.IsIn(e):
    53. s3.add(e)
    54. return s3
    55. #求并集
    56. def inter(self,s2):
    57. s3=Set()
    58. for i in range(self.size):
    59. e=self.data[i]
    60. if s2.IsIn(e):
    61. s3.add(e)
    62. return s3
    63. #求差集
    64. def diff(self,s2):
    65. s3=Set()
    66. for i in range(self.size):
    67. e=self.data[i]
    68. if not s2.IsIn(e):
    69. s3.add(e)
    70. return s3

    二、测试程序

    1. #测试程序
    2. s1=Set()
    3. s1.add(1)
    4. s1.add(4)
    5. s1.add(5)
    6. s1.add(3)
    7. s1.add(2)
    8. s1.add(4)
    9. print("集合s1:"),s1.display()
    10. print("s1的长度为:%d" %(s1.getsize()))
    11. s2=Set()
    12. s2.add(1)
    13. s2.add(2)
    14. s2.add(9)
    15. s2.add(4)
    16. s2.add(5)
    17. print("集合s2:"),s2.display()
    18. print("集合1和集合2的并集->s3")
    19. s3=s1.union(s2)
    20. print("集合3:"),s3.display()
    21. print("集合s1和集合s2的集合差s4")
    22. s4=s1.diff(s2)
    23. print("集合4:"),s4.display()
    24. print("集合s1和集合s2的交集->s5")
    25. s5=s1.inter(s2)
    26. print("集合s5:"),s5.display()

     

  • 相关阅读:
    TodoList经典案例
    jenkins部署-linux为例
    向量数据库Annoy和Milvus
    ITSM | 企业如何管理变更、响应事件以及创立知识库——专访龙智技术专家与顾问
    细谈在 Android 开发中 MVVM 与 AOP 的框架设计
    海关 瑞数5.5 找后缀加密入口解析
    微服务开发工具及环境搭建
    FastRcnn理论合集
    Idea创建springboot项目
    SpringCloud Gateway--网关服务基本介绍和基本原理
  • 原文地址:https://blog.csdn.net/weixin_62684026/article/details/126746181