数据结构学习记录
文章平均质量分 51
主要记录学习数据结构时学到的知识点
暴力递归战士
这个作者很懒,什么都没留下…
展开
-
7-4链表去重
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。原创 2023-11-15 11:12:21 · 314 阅读 · 0 评论 -
利用二叉树对表达式求值(只能处理个位的操作数)
题目要求:用二叉树来表示表达式,树的每一个节点包括一个运算符和运算数。代数表达式中只包含和一位整数且没有错误。按照先括号,再乘除,后加减的规则构造二叉树。如图所示是代数表达式对应二叉树,用对应的二叉树计算表达式的值。输入一行表达式字符串,括号内只能有一个运算符。输出表达式的计算结果.如果除数为0,提示divide 0 error!原创 2023-10-29 11:52:18 · 1206 阅读 · 0 评论 -
哈夫曼编码
根据哈夫曼编码的原理,编写一个程序,在用户输入结点权值的基础上求赫夫曼编码,并能把给定的编码进行译码。(1)初始化:从键盘输入一字符串(或读入一文件),统计出现的字符和每个字符出现的频率,将字符出现的频率作为结点的权值,建立哈夫曼树。对各个字符进行哈夫曼编码,最后打印输出字符及每个字符对应的哈夫曼编码。(2)编码:利用已建好的哈夫曼树对“输入串”进行哈夫曼编码,最后打印输入串对应的哈夫曼编码(写入文件)。(3)译码:利用已建好的哈夫曼树对给定的一串代码进行译码,并打印输出得到的字符串。(选作)原创 2023-10-29 11:41:18 · 726 阅读 · 0 评论 -
稀疏矩阵存储
1、(1)题目要求:如图所示,任意输入一个稀疏矩阵M,用三元组顺序表压缩存储该稀疏矩阵M,然后求其转置矩阵T,并输出转置矩阵T。原创 2023-10-29 11:10:09 · 519 阅读 · 0 评论 -
后缀表达式求值
后缀表达式求值:建立一个操作数栈S。然后从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项操作数进行运算,再将运算的结果代替原栈顶的n项压入栈中。重复上面过程,如果后缀表达式读完且栈中只剩一个操作数,则该数就是运算结果;如果后缀表达式读完但是栈中操作数多于一个,则后缀表达式错误;如果栈中操作数只剩一个,但是后缀表达式还未读完且当前运算符为双元操作符,则后缀表达式同样错误。原创 2023-10-21 23:06:13 · 1527 阅读 · 0 评论 -
带头结点并且只设尾指针的循环链队
/结点//链队}LinkQueue;原创 2023-10-15 23:45:32 · 205 阅读 · 0 评论 -
共用一个一维空间的双向栈
int bot[2];//栈0和栈1的栈顶//栈数组//栈最大可容纳元素个数}DblStack;//存放于一个数组空间的两个栈。原创 2023-10-15 23:32:21 · 134 阅读 · 0 评论 -
两个多项式相加(顺序表&&链表)
/定义多项式节点int expn;float coef;原创 2023-10-11 00:49:31 · 831 阅读 · 0 评论 -
线性表及其应用———约瑟夫环
约瑟夫(Joseph)问题的一种描述是:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈。每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,令其出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新报数,如此下去,直到所有人全部出列为止。试设计一个程序求出出列顺序。实验要求:利用无头结点的单向循环链表存储结构模拟此过程,按照出列的顺序打印出各人的编号。测试数据:m的初值为20;原创 2023-10-11 00:27:22 · 450 阅读 · 0 评论