会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133674个问题

class Node():
    def __init__(self, value=None, next=None):
        self.value = value
        self.next = next

class LinkList():
    def __init__(self):
        self.root = Node()  # 代表头
        self.size = 0  # 代表有几个数据
        self.next = None  # 通过设置next的值为0,来记录最后一个节点是谁,方便新加数据时,安排在那个元素后面
    
    def append(self, value):
        node = Node(value)  # 实例化
        # 判断是否已经有数据
        if not self.next: # 如果没有节点时
            self.root.next = node  # 将新节点挂到root后面
            self.next = node  # 因为self.next的值是None、node的next值是None,所以相当于node代替了self.next
        else:
            self.next.next = node  # 在最后一个节点的next指向node
            self.next = node  # 因为self.next的值是None、node的next值是None,所以相当于node代替了self.next
        self.size += 1
    def append_first(self,value):
        node = Node(value)  # 实例化
        if not self.next:  # 如果没有节点时
            self.root.next = node  # 直接在root后面加节点,相当于在头部加数据
            self.next = node  # 仅有node这一个数据,所以node也是最后一个节点
        else:
            temp = self.root.next  # 获取原来root后面的那个节点
            self.root.next = node  # 将新的节点挂到root上
            node.next = temp  # 新的节点的下一个节点是原来root后面的节点
        self.size += 1
    def __iter__(self):
        """遍历 """
        current = self.root.next
        while current is not self.next:
            yield current.value
            current = current.next
        yield current.value
if __name__ == '__main__':
    link = LinkList()
    link.append('孙悟空')
    link.append('猪八戒')
    link.append_first('唐僧')

    for i in link:
        print(i)

image.png

老师,请问红线处标注的理解是否正确?尤其是红色箭头处

Python 全系列/第十七阶段:数据结构与算法/算法与数据结构(旧) 23131楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 23132楼

老师我在Piane类里面加了几个if语句,想要飞机在边缘的时候停下来,但是每次停下来的位置都不一样,该怎么调整呢?

image.png

package com.bjsxt.plane;

import java.awt.*;
import java.awt.event.KeyEvent;

public class Plane extends GameObject{

    boolean left,right,up,down;     //飞机的方向控制


    @Override
    public void drawMyself(Graphics g) {
        super.drawMyself(g);

        //飞机飞行的算法,可以自行设定
//        x += speed;

        if(left) {
            x -= speed;
        }
        if(right) {
            x += speed;
        }
        if(up) {
            y -= speed;
        }
        if(down) {
            y += speed;
        }
    }

    public void addDirection(KeyEvent e){

        if (e.getKeyCode() == KeyEvent.VK_LEFT) {
            left = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
            right = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_UP) {
            up = true;
        }
        if (e.getKeyCode() == KeyEvent.VK_DOWN) {
            down = true;
        }

        if (x < 100){
            left = false;
        }
        if (x > 400){
            right = false;
        }
        if (y < 100){
            up = false;
        }
        if (y > 400){
            down = false;
        }
/*        switch (e.getKeyCode()){
            case KeyEvent.VK_LEFT:
                left = true;
                break;
            case KeyEvent.VK_RIGHT:
                right = true;
                break;
            case KeyEvent.VK_UP:
                up = true;
                break;
            case KeyEvent.VK_DOWN:
                down = true;
                break;
        }*/
    }

    public void minusDirection(KeyEvent e){

        if (e.getKeyCode()==KeyEvent.VK_LEFT){
            left = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_RIGHT){
            right = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_UP){
            up = false;
        }
        if (e.getKeyCode()==KeyEvent.VK_DOWN){
            down = false;
        }

/*        switch (e.getKeyCode()){
            case KeyEvent.VK_LEFT:
                left = false;
                break;
            case KeyEvent.VK_RIGHT:
                right = false;
                break;
            case KeyEvent.VK_UP:
                up = false;
                break;
            case KeyEvent.VK_DOWN:
                down = false;
                break;
        }*/
    }

    public Plane(Image img, double x, double y, int speed) {
        super(img, x, y, speed);
    }
}

GIF.gif

JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 23134楼
JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/Zookeeper 23137楼
JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/Zookeeper 23139楼

代码:

class Array():
    def __init__(self,size=4):
        self.__size=size
        self.__item=[None]*size
        self.__length=0
    def __setitem__(self, key, value):
        self.__item[key]=value
    def __getitem__(self, key):
        return self.__item[key]
    def __iter__(self):
        for i in self.__item:
            yield i
class Heap():
    def __init__(self):
        self.item=Array(8)
        self.count=0
    def add(self,value):
        self.item[self.count]=value
        self.setup(self.count)
        self.count += 1
    def setup(self,index):
        if index>0:
            parent=int((index-1)/2)
            if self.item[parent]<self.item[index]:
                self.item[parent],self.item[index]=self.item[index],self.item[parent]
                self.setup(parent)
    def pop(self,index=0):
        if self.count<=0:
            return None
        else:
            value = self.item[0]
            self.count -= 1
            self.item[0] = self.item[self.count]
            self.item[self.count] = None
            self.setdown(0)
            return value
    def setdown(self,index):
        left=index*2+1
        right=index*2+2
        largest=index
        if right<self.count:
            if self.item[largest]<self.item[right] and self.item[right]>self.item[left]:
                largest=right
            elif self.item[largest]<self.item[right] and self.item[right]<self.item[left]:
                largest=left
            elif self.item[largest]>self.item[right] and self.item[largest]<self.item[left]:
                largest=left
        elif left<self.count:
            if self.item[left]>self.item[largest]:
                largest=left
        if largest !=index:
            self.item[largest],self.item[index]=self.item[index],self.item[largest]
            self.setdown(largest)
heap=Heap()
heap.add(10)
heap.add(15)
heap.add(20)
# heap.pop(20)
heap.pop(10)
for i in heap.item:
    if i:
        print(i)

运行结果:

屏幕截图 2021-04-02 163046.png

老师请问一下,为什么我最大堆删除10以后,再打印,结果还是会显示10?我不是已经把10删除了吗?那么这样结果不应该是20和15吗?

Python 全系列/第十七阶段:数据结构与算法/算法与数据结构(旧) 23141楼

flask_shop.zip

vue_shop.zip

老师   求助!!!  

我前端可以拿到后端的数据   但是增加数据   修改数据都不行   运行代码也不报错 

我找了半天    也改了  但是都不行   发送请求之前验证数据是否规范是false  我觉得可能是这里的错误  

希望老师帮忙!!!


Python 全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 23143楼
Python 全系列/第一阶段:Python入门/编程基本概念 23145楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637