每日一题
文章平均质量分 55
Code_zx
一个刚开始的编程菜鸟,开始我的编程生涯。
展开
-
数据结构——链表逆序打印(C语言版)
链表一种链式存储的线性表,由任意地址的空间链接起来,其中这个任意的空间称为结点,每个结点当中包含了数据以及下一个结点!某些情况下,要求逆序打印链表:即从尾到头打印链表思路解析每个结点都指向下一个结点,不能逆向访问,于是乎:要想打印最后一个结点,就必须打印其之前的所有结点, 由此思路,很显然,我们应该采取的方法是:递归 递归 递归!递归:是程序调用自身的编程技巧 ,直接或间接...原创 2018-06-04 12:22:51 · 1339 阅读 · 0 评论 -
数据结构——链表“焦点”(C语言版)
不是烧焦的焦 这里是交点的交!!我们要求的问题是,判断两个链表是否是相交的,并且如果是相交的话,找出交点!!两个链表的相对位置有以下六种,其中我们这里讨论的是不带环的链表相交! 显而易见 我们要判断两个不带环链表的相交很简单! 只需要看其尾结点是否一致,便可做出判断 对此,我们先首先构造一个相交的链表,再通过我们的代码进行判断!!构造相交链表的代码:PNode L...原创 2018-07-03 14:34:37 · 448 阅读 · 0 评论 -
数据结构——有序链表合并(C语言版)
有序链表合并两个有序的链表,要求将其合并为一个链表,并且该链表保持有序!!这里所讲的是链表升序!首先,我们要构造两张按照升序排列好的链表。 构造链表:我们的方法有尾插,头插,大家可以click链接来查看: https://blog.csdn.net/code_zx/article/details/80024207这里我们的实验数据,以及思路如图所示!! 实验数据: 链表1:...原创 2018-07-03 14:08:29 · 5340 阅读 · 0 评论 -
数据结构课程设计——链表合并
学校来题 因为这学期学了数据结构这门课,于是乎,学院便给了一个让我们课程设计的题目。 实现两个链表的合并 基本功能要求: (1)建立两个链表A和B,链表元素个数分别为m和n个。 (2)假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线性表C,使得: 当m>=n时,C=x1,y1,x2,y2,…xn,yn,…,xm 当n>m时,C=y1,x...原创 2018-07-02 16:36:21 · 4058 阅读 · 14 评论 -
栈应用的逆波兰表达式(优化)
上次写了一个逆波兰表达式的求值代码,但要求是将表达式用数组来表示,非常的不方便!!! 大家可以参考一下:https://blog.csdn.net/code_zx/article/details/80813110于是乎,我在上面做了一点点优化,将表达式用字符串表示,另外,数据与数据之间,数据与操作符之间,操作符与操作符之间均采用空格隔开!话不多说,我们需要求值的表达式为:ptr = “1...原创 2018-06-27 09:16:43 · 356 阅读 · 0 评论 -
栈应用之简单迷宫问题(C语言版)
迷宫在这儿——–>(用二维数组实现) 栈的应用有很多,前面解决了括号问题和后缀表达式问题,迷宫便可以解决了!! 迷宫的解题思路有点绕,并且其栈的结构也有所改变!但是本次解决迷宫仍然用的普通的栈首先:迷宫如下(1表示通路,0表示非通路)0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 ...原创 2018-06-26 21:57:11 · 7591 阅读 · 2 评论 -
栈的应用之逆波兰表达式(后缀表达式)(C语言版)
逆波兰表达式的概念又称为后缀表达式,其特点是操作符位于操作数之后,目前,这儿只解决传入的字符串为逆波兰表达式的问题!!例如:表达式为: int ptr[] = { 12, 3, 4 , ‘+’, ‘*’, 6, ‘-‘, 8, 2, ‘/’, ‘-‘}; 已经将此表达式放入数组中存储 那么如何解决此类问题呢??思路在此 代码敬上//b、逆波兰...原创 2018-06-26 11:48:43 · 543 阅读 · 0 评论 -
栈应用之括号匹配问题(C语言版)
来人!!上题目!一个字符串中有许多的括号! 例如字符串 ptr1[] = “a(()){[[]}]”; //次序 ptr2[] = “a(()){}[[]”; //左多 ptr3[] = “a(()){[[]]}]”; //右多 ptr4[] = “a(()){[[]]}”; //匹...原创 2018-06-26 11:35:54 · 5637 阅读 · 0 评论 -
数据结构——链表逆置!
链表逆置:是将形如 1 →2 →3 →4 →5 →NULL 的链表逆置改为:5 →4 →3 →2 →1 →NULL 对于这个问题,有两种方法:1、采用三个指针:将整个链表翻转!! 时间复杂度O(N^2) 嵌套循环具体思路如下:首先要先找到新的头结点,则需要一个指针pCur1遍历链表,找到原尾结点,将其设置为新的头结点,因为我们需要从原头结点开始遍历,则需要一个pOldHead指...原创 2018-06-07 09:49:51 · 1968 阅读 · 0 评论 -
数据结构——链表——找中间结点、倒数第K个结点、删除倒数第K个结点(C语言版)(要求只能遍历一次链表)
由于要进行期末考试了,所以就将明天的提前发了,留一点复习的时间!!这次的题是在只进行一次遍历链表的情况下,找到中间结点;或者找到倒数第K个结点,当明白了这两个问题的思想之后,最后的删除倒数第K个结点就只是调用一下之前的函数了!这儿有个趣味小问题:一百米赛跑,兔子的速度是乌龟的两倍,那么兔子到终点后,乌龟的位置在哪儿??问题很显然,乌龟就在五十米处,也就是整个赛道的中间点。由此可见:遍历...原创 2018-06-05 15:17:15 · 1401 阅读 · 0 评论 -
链表——删除非尾结点、某个结点位置插入值为data的结点(不能遍历链表)
最近遇到这样一个题: 删除一个非尾结点pos;在pos位置插入一个值为data的新结点,要求都是不能遍历链表对于这种类型的题,首先:找到pos这个结点,然后才是调用函数删除或者插入。于是,首先我们应该写一个能找到pos结点的函数 PNode FindDataNode(PNode pHead, DataType data)函数代码如下: PNode FindDataNode...原创 2018-06-05 13:52:24 · 346 阅读 · 0 评论 -
冒泡排序(C语言版)
概念冒泡排序是通过依次的比较,将所需要的元素层层交换(冒泡)至数据链的开头,每冒泡一次,则数据链头部往后移一位经过N次冒泡之后,得到最终序列的算法!!性质1、该排序是稳定的! 2、该排序的空间复杂度为O(1)、时间复杂度为O(N^2)!!检测 例题:将一个链表采用冒泡的方式,将其有序化。(这里我们暂定是降序) 实验数据:链表结点的数据依次为:3,6,1,7,5,0 理想结果...原创 2018-07-03 15:44:35 · 9844 阅读 · 0 评论