python编程(指针)

发布时间:2019-09-05 07:01:30编辑:auto阅读(1536)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


        python下面编程其实是没有指针的,实际编程一般用引用来代替。比如像这样来定义一个类,

    class link(object):
    	def __init__(self):
    		self.prev = self
    		self.next = self

        我们知道数据结构下面有很多的算法需要用指针来实现,这其中就包括链表、二叉树、图、最小生成树等等。今天,为了给大家说明如何利用python来编写这一类的应用,我们来实现一个最简单的链表函数。这算是抛砖引玉吧,欢迎大家多提宝贵意见,

    #!/usr/bin/python
    
    import os
    import sys
    import re
    
    class link(object):
    	def __init__(self):
    		self.prev = self
    		self.next = self
    
    	def add_node(self, node):
    		node.next = self
    		node.prev = self.prev
    		self.prev.next = node
    		self.prev = node
    
    	def del_node(self, node):
    		node.prev.next = node.next
    		node.next.prev = node.prev
    
    	def is_node_empty(self):
    		if self == self.next:
    			return 1
    		else:
    			return 0
    
    	def get_node_number(self):
    		node = self.next
    		cnt = 0
    		while node != self:
    			cnt += 1
    			node = node.next
    		return cnt
    
    
    def main():
    	head = link()
    	node = link()
    	print head.get_node_number()
    	print head.is_node_empty()
    
    	head.add_node(node)
    	print head.get_node_number()
    	print head.is_node_empty()
    
    	head.del_node(node)
    	print head.get_node_number()
    	print head.is_node_empty()
    	
    
    
    if __name__ == '__main__':
    	main()
    

        事实上,算法和编程语言没有必然的联系。我建议大家在实际项目中,如果不是嵌入式开发或者是开发性能有关的业务代码,可以尽量用python来进行软件开发。不管是写算法(排序、查找等),还是做gui客户端(基于wx)、web开发(flask等),或者是一般的工具(输入命令、输出结果这种),建议大家多用python语言。开发环境安装简单,效果也快,不像windows平台动不动就要安装几个G的visual stdio软件,真是太麻烦了。


关键字