鱼C论坛

 找回密码
 立即注册
查看: 1657|回复: 6

[已解决]结果显示问题

[复制链接]
发表于 2020-7-13 20:11:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #先定义一个节点的类
  2. class Node():
  3.     #初始化
  4.     def __init__(self,elem):
  5.         self.elem=elem
  6.         self.next=None#节点对象一开始的数据区是有的但是next不知道该指向谁先设置为空
  7. node=Node(100)

  8. #定义单链表的类
  9. class Singlelinklist():
  10.     def __init__(self,node=None):#链表当中必须得存在一个属性指向第一个节点将链表与节点关联起来,属于类属性,因为在使用链表的时候不是拿类来操作的
  11.         self.__head=node#自己内部的函数去使用,对外不暴露,所以将其私有化
  12.     def is_empty(self):
  13.        return self.__head==None
  14.     def length(self):
  15.       #cur游标用来移动遍历节点;将cur置于头一个头结点
  16.         cur=self.__head
  17.         count=0
  18.         if cur==None:
  19.       #count用来记录数据
  20.             count=0
  21.         while cur!=None:
  22.             count+=1
  23.             cur=cur.next
  24.         return count
  25.     def travel(self):
  26.         """遍历整个列表"""
  27.         cur=self.__head
  28.         while cur!=None:
  29.             print(cur.elem,end=' ')
  30.             cur=cur.next
  31.     def add(self,item):
  32.         """链表头部添加元素"""
  33.         node=Node(item)
  34.         node.next=self.__head
  35.         self.__head=node
  36.     def append(self,item):
  37.         """链表尾部添加元素"""
  38.         node=Node(item)
  39.         if self.is_empty():
  40.             self.__head=node
  41.         else:
  42.             cur=self.__head
  43.             while cur.next!=None:
  44.                 cur=cur.next
  45.             cur.next=node
  46.     def insert(self,pos,item):
  47.         """在指定的位置添加元素"""
  48.         if pos<=0:
  49.             self.add(item)
  50.         elif pos>(self.length()-1):
  51.             self.append(item)
  52.         else:
  53.             pre=self.__head
  54.             count=0
  55.             while count<pos-1:
  56.                 count+=1
  57.                 pre=pre.next
  58.             #循环退出后pre指向pos-1位置
  59.             node=Node(item)
  60.             node.next=pre.next#退出循环
  61.             pre.next=node

  62.     def remove(self,item):#使用两个游标cur和pre,移动的时候先移动pre再移动cur
  63.         """删除节点"""
  64.         cur=self.__head
  65.         pre=None
  66.         while cur!=None:
  67.             if cur.elem ==item:

  68.                if cur==self.__head:
  69.                    self.__head=cur.next
  70.                else:
  71.                    pre.next=cur.next
  72.                break
  73.             else:
  74.                 pre=cur
  75.                 cur=cur.next




  76.     def search(self,item):
  77.         """查找节点是否存在"""
  78.         cur=self.__head
  79.         while cur!=None:
  80.             if cur.elem==item:
  81.                 return True
  82.             else:
  83.                 cur=cur.next
  84.         return False
  85. if __name__=='__main__':
  86.     li=Singlelinklist()
  87.     print(li.is_empty())
  88.     print(li.length())
  89.     li.append(1)
  90.     print(li.is_empty())
  91.     print(li.length())
  92.     li.append(2)
  93.     li.add(8)
  94.     li.append(3)
  95.     li.append(4)
  96.     li.append(5)
  97.     li.append(6)
  98.     #8123456
  99.     li.insert(-1,9)#98123456
  100.     li.travel()
  101.     li.insert(3,100)#98110023456
  102.     li.travel()
  103.     li.insert(10,200)#98110023456200
  104.     li.travel()
  105.     li.remove(100)
  106.     li.travel()
  107.     li.remove(9)
  108.     li.travel()
  109.     li.remove(200)
复制代码


上面这个代码我每次运行的时候他所有的遍历都显示在一行,我希望遍历一次(li.travel())就显示一行内容,不想它全部显示在一起,想问一下代码要如何修改?
最佳答案
2020-7-14 20:45:00
波大大12138 发表于 2020-7-13 23:38
不对去掉之后每行只显示一个数字,我想要的是遍历一次一行就显示该遍历的全部内容

哦明白了,加个print()就行了
代码:
  1. #先定义一个节点的类
  2. class Node():
  3.     #初始化
  4.     def __init__(self,elem):
  5.         self.elem=elem
  6.         self.next=None#节点对象一开始的数据区是有的但是next不知道该指向谁先设置为空
  7. node=Node(100)

  8. #定义单链表的类
  9. class Singlelinklist():
  10.     def __init__(self,node=None):#链表当中必须得存在一个属性指向第一个节点将链表与节点关联起来,属于类属性,因为在使用链表的时候不是拿类来操作的
  11.         self.__head=node#自己内部的函数去使用,对外不暴露,所以将其私有化
  12.     def is_empty(self):
  13.        return self.__head==None
  14.     def length(self):
  15.       #cur游标用来移动遍历节点;将cur置于头一个头结点
  16.         cur=self.__head
  17.         count=0
  18.         if cur==None:
  19.       #count用来记录数据
  20.             count=0
  21.         while cur!=None:
  22.             count+=1
  23.             cur=cur.next
  24.         return count
  25.     def travel(self):
  26.         """遍历整个列表"""
  27.         cur=self.__head
  28.         while cur!=None:
  29.             print(cur.elem,end=' ')
  30.             cur=cur.next
  31.         print()
  32.     def add(self,item):
  33.         """链表头部添加元素"""
  34.         node=Node(item)
  35.         node.next=self.__head
  36.         self.__head=node
  37.     def append(self,item):
  38.         """链表尾部添加元素"""
  39.         node=Node(item)
  40.         if self.is_empty():
  41.             self.__head=node
  42.         else:
  43.             cur=self.__head
  44.             while cur.next!=None:
  45.                 cur=cur.next
  46.             cur.next=node
  47.     def insert(self,pos,item):
  48.         """在指定的位置添加元素"""
  49.         if pos<=0:
  50.             self.add(item)
  51.         elif pos>(self.length()-1):
  52.             self.append(item)
  53.         else:
  54.             pre=self.__head
  55.             count=0
  56.             while count<pos-1:
  57.                 count+=1
  58.                 pre=pre.next
  59.             #循环退出后pre指向pos-1位置
  60.             node=Node(item)
  61.             node.next=pre.next#退出循环
  62.             pre.next=node

  63.     def remove(self,item):#使用两个游标cur和pre,移动的时候先移动pre再移动cur
  64.         """删除节点"""
  65.         cur=self.__head
  66.         pre=None
  67.         while cur!=None:
  68.             if cur.elem ==item:

  69.                if cur==self.__head:
  70.                    self.__head=cur.next
  71.                else:
  72.                    pre.next=cur.next
  73.                break
  74.             else:
  75.                 pre=cur
  76.                 cur=cur.next




  77.     def search(self,item):
  78.         """查找节点是否存在"""
  79.         cur=self.__head
  80.         while cur!=None:
  81.             if cur.elem==item:
  82.                 return True
  83.             else:
  84.                 cur=cur.next
  85.         return False
  86. if __name__=='__main__':
  87.     li=Singlelinklist()
  88.     print(li.is_empty())
  89.     print(li.length())
  90.     li.append(1)
  91.     print(li.is_empty())
  92.     print(li.length())
  93.     li.append(2)
  94.     li.add(8)
  95.     li.append(3)
  96.     li.append(4)
  97.     li.append(5)
  98.     li.append(6)
  99.     #8123456
  100.     li.insert(-1,9)#98123456
  101.     li.travel()
  102.     li.insert(3,100)#98110023456
  103.     li.travel()
  104.     li.insert(10,200)#98110023456200
  105.     li.travel()
  106.     li.remove(100)
  107.     li.travel()
  108.     li.remove(9)
  109.     li.travel()
  110.     li.remove(200)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-13 20:16:04 | 显示全部楼层
print(cur.elem,end=' ')自己百度下print函数的参数意义
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-7-13 20:18:49 | 显示全部楼层
本帖最后由 wuqramy 于 2020-7-13 20:22 编辑

print的end参数本来就是控制它自动换行打印的
end是用来设定print以什么结 默认值是换行符 \n
现在你把它改成了" "
当然不会换行啦 把end = ' '去了就好了
print扩展信息:https://www.runoob.com/python3/python-func-print.html
修改后代码:
  1. #先定义一个节点的类
  2. class Node():
  3.     #初始化
  4.     def __init__(self,elem):
  5.         self.elem=elem
  6.         self.next=None#节点对象一开始的数据区是有的但是next不知道该指向谁先设置为空
  7. node=Node(100)

  8. #定义单链表的类
  9. class Singlelinklist():
  10.     def __init__(self,node=None):#链表当中必须得存在一个属性指向第一个节点将链表与节点关联起来,属于类属性,因为在使用链表的时候不是拿类来操作的
  11.         self.__head=node#自己内部的函数去使用,对外不暴露,所以将其私有化
  12.     def is_empty(self):
  13.        return self.__head==None
  14.     def length(self):
  15.       #cur游标用来移动遍历节点;将cur置于头一个头结点
  16.         cur=self.__head
  17.         count=0
  18.         if cur==None:
  19.       #count用来记录数据
  20.             count=0
  21.         while cur!=None:
  22.             count+=1
  23.             cur=cur.next
  24.         return count
  25.     def travel(self):
  26.         """遍历整个列表"""
  27.         cur=self.__head
  28.         while cur!=None:
  29.             print(cur.elem)
  30.             cur=cur.next
  31.     def add(self,item):
  32.         """链表头部添加元素"""
  33.         node=Node(item)
  34.         node.next=self.__head
  35.         self.__head=node
  36.     def append(self,item):
  37.         """链表尾部添加元素"""
  38.         node=Node(item)
  39.         if self.is_empty():
  40.             self.__head=node
  41.         else:
  42.             cur=self.__head
  43.             while cur.next!=None:
  44.                 cur=cur.next
  45.             cur.next=node
  46.     def insert(self,pos,item):
  47.         """在指定的位置添加元素"""
  48.         if pos<=0:
  49.             self.add(item)
  50.         elif pos>(self.length()-1):
  51.             self.append(item)
  52.         else:
  53.             pre=self.__head
  54.             count=0
  55.             while count<pos-1:
  56.                 count+=1
  57.                 pre=pre.next
  58.             #循环退出后pre指向pos-1位置
  59.             node=Node(item)
  60.             node.next=pre.next#退出循环
  61.             pre.next=node

  62.     def remove(self,item):#使用两个游标cur和pre,移动的时候先移动pre再移动cur
  63.         """删除节点"""
  64.         cur=self.__head
  65.         pre=None
  66.         while cur!=None:
  67.             if cur.elem ==item:

  68.                if cur==self.__head:
  69.                    self.__head=cur.next
  70.                else:
  71.                    pre.next=cur.next
  72.                break
  73.             else:
  74.                 pre=cur
  75.                 cur=cur.next




  76.     def search(self,item):
  77.         """查找节点是否存在"""
  78.         cur=self.__head
  79.         while cur!=None:
  80.             if cur.elem==item:
  81.                 return True
  82.             else:
  83.                 cur=cur.next
  84.         return False
  85. if __name__=='__main__':
  86.     li=Singlelinklist()
  87.     print(li.is_empty())
  88.     print(li.length())
  89.     li.append(1)
  90.     print(li.is_empty())
  91.     print(li.length())
  92.     li.append(2)
  93.     li.add(8)
  94.     li.append(3)
  95.     li.append(4)
  96.     li.append(5)
  97.     li.append(6)
  98.     #8123456
  99.     li.insert(-1,9)#98123456
  100.     li.travel()
  101.     li.insert(3,100)#98110023456
  102.     li.travel()
  103.     li.insert(10,200)#98110023456200
  104.     li.travel()
  105.     li.remove(100)
  106.     li.travel()
  107.     li.remove(9)
  108.     li.travel()
  109.     li.remove(200)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 20:59:14 | 显示全部楼层
你想让print自动换行,就应该让他保持默认参数,不能加上end=' '
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 23:37:31 | 显示全部楼层
wuqramy 发表于 2020-7-13 20:18
print的end参数本来就是控制它自动换行打印的
end是用来设定print以什么结 默认值是换行符 \n
现在你把它 ...

不对去掉之后每行只显示一个数字,我想要的是遍历一次一行就显示该遍历的全部内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 23:38:07 | 显示全部楼层
xiaofeiyu 发表于 2020-7-13 20:59
你想让print自动换行,就应该让他保持默认参数,不能加上end=' '

不对去掉之后每行只显示一个数字,我想要的是遍历一次一行就显示该遍历的全部内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 20:45:00 | 显示全部楼层    本楼为最佳答案   
波大大12138 发表于 2020-7-13 23:38
不对去掉之后每行只显示一个数字,我想要的是遍历一次一行就显示该遍历的全部内容

哦明白了,加个print()就行了
代码:
  1. #先定义一个节点的类
  2. class Node():
  3.     #初始化
  4.     def __init__(self,elem):
  5.         self.elem=elem
  6.         self.next=None#节点对象一开始的数据区是有的但是next不知道该指向谁先设置为空
  7. node=Node(100)

  8. #定义单链表的类
  9. class Singlelinklist():
  10.     def __init__(self,node=None):#链表当中必须得存在一个属性指向第一个节点将链表与节点关联起来,属于类属性,因为在使用链表的时候不是拿类来操作的
  11.         self.__head=node#自己内部的函数去使用,对外不暴露,所以将其私有化
  12.     def is_empty(self):
  13.        return self.__head==None
  14.     def length(self):
  15.       #cur游标用来移动遍历节点;将cur置于头一个头结点
  16.         cur=self.__head
  17.         count=0
  18.         if cur==None:
  19.       #count用来记录数据
  20.             count=0
  21.         while cur!=None:
  22.             count+=1
  23.             cur=cur.next
  24.         return count
  25.     def travel(self):
  26.         """遍历整个列表"""
  27.         cur=self.__head
  28.         while cur!=None:
  29.             print(cur.elem,end=' ')
  30.             cur=cur.next
  31.         print()
  32.     def add(self,item):
  33.         """链表头部添加元素"""
  34.         node=Node(item)
  35.         node.next=self.__head
  36.         self.__head=node
  37.     def append(self,item):
  38.         """链表尾部添加元素"""
  39.         node=Node(item)
  40.         if self.is_empty():
  41.             self.__head=node
  42.         else:
  43.             cur=self.__head
  44.             while cur.next!=None:
  45.                 cur=cur.next
  46.             cur.next=node
  47.     def insert(self,pos,item):
  48.         """在指定的位置添加元素"""
  49.         if pos<=0:
  50.             self.add(item)
  51.         elif pos>(self.length()-1):
  52.             self.append(item)
  53.         else:
  54.             pre=self.__head
  55.             count=0
  56.             while count<pos-1:
  57.                 count+=1
  58.                 pre=pre.next
  59.             #循环退出后pre指向pos-1位置
  60.             node=Node(item)
  61.             node.next=pre.next#退出循环
  62.             pre.next=node

  63.     def remove(self,item):#使用两个游标cur和pre,移动的时候先移动pre再移动cur
  64.         """删除节点"""
  65.         cur=self.__head
  66.         pre=None
  67.         while cur!=None:
  68.             if cur.elem ==item:

  69.                if cur==self.__head:
  70.                    self.__head=cur.next
  71.                else:
  72.                    pre.next=cur.next
  73.                break
  74.             else:
  75.                 pre=cur
  76.                 cur=cur.next




  77.     def search(self,item):
  78.         """查找节点是否存在"""
  79.         cur=self.__head
  80.         while cur!=None:
  81.             if cur.elem==item:
  82.                 return True
  83.             else:
  84.                 cur=cur.next
  85.         return False
  86. if __name__=='__main__':
  87.     li=Singlelinklist()
  88.     print(li.is_empty())
  89.     print(li.length())
  90.     li.append(1)
  91.     print(li.is_empty())
  92.     print(li.length())
  93.     li.append(2)
  94.     li.add(8)
  95.     li.append(3)
  96.     li.append(4)
  97.     li.append(5)
  98.     li.append(6)
  99.     #8123456
  100.     li.insert(-1,9)#98123456
  101.     li.travel()
  102.     li.insert(3,100)#98110023456
  103.     li.travel()
  104.     li.insert(10,200)#98110023456200
  105.     li.travel()
  106.     li.remove(100)
  107.     li.travel()
  108.     li.remove(9)
  109.     li.travel()
  110.     li.remove(200)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 13:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表