数据结构和算法
Paul_learns_creating
如果时间有记忆
展开
-
打印二叉树(1)
突然想着怎么打印一颗二叉树,本来想用控制台输出,但是直觉告诉我那太麻烦了,于是我使用了easyx图形库。下面这段程序,首先随机生成一棵节点数为nums的二叉树,然后使用easyx图形库展示出来,开发工具VS2022。原创 2023-10-10 11:12:30 · 68 阅读 · 0 评论 -
快速排序算法和C++实现
使用两个指针left和right,分别指向待排序列首元素前一个位置和尾元素后一个位置,使用另一个指针i指向待排序列首元素,比较当前指针的值是否小于x,是则交换left+1和i的元素,这样#1部分扩充一个元素,i++;如果大于x,则交换right-1和i的元素,这样#3部分扩充一个元素。该算法维持了一个不变量,每次进入循环前,left以及左边部分是比x小的部分,right以及右边部分是大于x的部分,而left+1到righ-1t则是处于一种混沌的状态,大于小于等于都有可能,初始化时i指向了left+1位置;原创 2023-09-17 15:19:45 · 48 阅读 · 0 评论 -
给定一个序列,求该序列按顺序入栈时,所有合法的出栈序列
考虑使用回溯模拟这一操作过程,思路是,使用一个指针指向当前序列字符,准备一个栈,用来模拟入栈,准备一个队列,用来接收出栈元素,当指针指向字符末尾,也就是n时,说明所有字符都已经入栈完成,这是回溯结束,回溯结束时,栈和队列都有可能非空,栈非空时,将栈内元素弹出到队列末尾,然后依次出队得到出栈序列。note:对于指针当前指向的字符,有两种可能的操作:1,将其入栈;2,不入栈,此时弹出栈顶元素到队列,此时完成出栈操作。给定序列Si ,0原创 2023-09-16 14:02:28 · 347 阅读 · 1 评论