- 博客(21)
- 收藏
- 关注
原创 增序链表与减序链表合并成增序
设 A 为递减有序(元素值为整型)的单链表,B为递增有序(元素值为整型)的单链表,编写函数将 A 和 B 合并成一个递减有序的单链表,相同元素值只保留一个结点。
2023-02-17 21:24:12 415
原创 队列的基本操作(循环数组)
在这篇文章中我其实说循环数组写队列有一点麻烦来着,但后来发现我们考试范围里好像有循环数组,所以又自己写了一下,但是写的比较赶吧,虽然我自己测试的是没啥问题,但也可能有错误,还望指正。
2023-02-15 19:46:38 132
原创 Huffman编码与解码(南航2022数据结构课设第五题)
霍夫曼解码和编码的部分并不困难,这道题最难的点在于实现真正的文件压缩,c++并没有提供文件的直接按位写入或读出,这就需要我们进行额外的处理,而我的选择就是将八位数据压缩成一个字符类型进行存储,但是会有剩余数据读不满八位的情况,我懒得再想其他更好的办法了,选择直接另建一个文件进行辅助。对一篇不少于5000字符的英文文章(source.txt),统计各字符出现的次数,实现Huffman编码(code.dat),以及对编码结果的解码(recode.txt)。(血的教训,我找了一个多小时的错误)。
2023-02-15 12:59:11 559
原创 队列的基本操作(链表版)
队列是一种特殊的,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
2023-02-15 09:00:00 299
原创 栈的基本操作
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
2023-02-14 12:52:57 1100
原创 单链表基础操作
链表的操作是最为基础且重要的,为了期末考试我对单链表的基本操作进行了简单的整理,数据是文件读入的,文件名为text.txt,总体上用到了一个结构体进行链表节点信息的存储,还用到了一个类来实现具体操作。
2023-02-13 17:40:27 212
原创 南京市公交线路提示(2022南航数据结构课设第四题)
上网下载真实南京公交线路图,建立南京主要公交线路图的存储结构。[基本要求](1)输入任意两站点,给出转车次数最少的乘车路线。(2)输入任意两站点,给出经过站点最少的乘车路线。
2023-02-02 20:52:59 1132 1
原创 火车购票(南航2022数据结构课设第七题/csp201609-2)
请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
2023-02-02 20:50:58 263
原创 棋局评估(南航2022数据结构课设第八题/csp201803-4)
井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先。不难看出这是一道模拟题,目的就是使双方每次的落子点都是当前的最优解,因为只是3*3的小棋盘,我们可以直接采取遍历所有可行的落子方案,然后返回当前最优解,这用递归的方法最好实现。每组数据输入有3行,每行有3个整数,用空格分隔,分别表示棋盘每个格子的状态。例如上图中的局面,Alice已经获胜,同时棋盘上有2个空格,所以局面得分为2+1=3。对于每组数据,输出一行一个整数,表示当前局面的得分。
2023-02-02 20:50:39 465
原创 算术表达式求值(南航2022数据结构课设第二题)
一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正实数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#6+15*(21-8/4)#。引入表达式起始、结束符是为了方便。编程利用“运算符优先法”求算术表达式的值。
2023-02-02 20:47:20 1049 3
原创 排序算法比较(南航2022数据结构课设第六题)
利用随机函数产生10个样本,每个样本有50000个随机整数(并使第一个样本是正序,第二个样本是逆序),利用直接插入排序、希尔排序,冒泡排序、快速排序、选择排序、堆排序,归并排序、基数排序8种排序方法进行排序(结果为由小到大的顺序),并统计每一种排序算法对不同样本所耗费的时间。
2023-02-02 20:39:12 611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人