数据结构一元多项式_【学习分享】数据结构与算法例题讲解

41aadbc698a3244a80a7f48879c22958.png

国庆八天长假刚结束,2019级卓越班的同学们立刻进入了学习的状态,于2020年10月9日下午成功举行了第三次知识分享会。杨一达,于志强,王彤瑶三位同学为我们带来了《数据结构与算法》中经典例题的讲解,并分享了他们在各自完成过程中所积累的经验。

520df11b1ef152515cb4aec4b9f51563.gif 20f45a61353e669217feeb367bd330a5.png 8d26c4aada1a483d973f663998e70631.png e4bcfc9505ad682f476d9d7f5847947c.gif

1.约瑟夫环问题

杨一达同学为我们讲解第一个问题——约瑟夫环。第一种方法使用单向循环链表,第二种方法使用双向循环链表。在第一种方法中,需要注意的是,在链表创建完成之后,应该返回的是最后一个结点的地址,这样方便后面的操作。在第二种方法里结构体中多出了一个指向前一个结点的指针,和一个表示方向的变量direction,0代表逆向,1代表正向。第二种方法的难点在于双向循环链表的创建与删除,删除必须把握好连接的顺序,否则会造成空指针异常。

16626f6a7cbb7cfe1effe6b7a17a5d16.png e246b8525f4bf944a384263678657f75.png 85213be6ccd5bcbe32bcde6ad22c350c.png

2.一元多项式计算

第二个问题是一元多项式的计算。在这道题目中,王彤瑶同学使用单向链表来解决一元多项式加法、减法、求导、乘法和求值运算。计算Pa、Pb两个多项式相加时,用Pc来存放其和,令qa、qb、qc分别指向单链表Pa、Pb和Pc的当前项。若qa所指向的节点的指数小于qb的,则将qa复制到qc中,令指针qa后移;若qa所指向的节点的指数等于qb的,则将qa的系数域与qb的系数域的和作为qc的系数域,qa、qb后移;若qa所指向节点的系数大于qb所指向节点的系数,则将qb复制到qc中,令指针qc后移。做减法计算时可以将减数Pb中的系数变为其相反数然后与Pa相加。在乘法计算中,将Pb看做一个整体,让Pa的每一项乘以Pb得到若干个多项式,再将他们相加。

7fbc81474bc4047b4ea1044366f3cebf.png 520df11b1ef152515cb4aec4b9f51563.gif

3.表达式求值

最后一个问题是表达式求值。于志强同学所讲的表达式求值问题,可以在有括号的情况下进行加减乘除。首先利用一个结构体数组将运算符及其优先级存储起来,然后定义两个栈进行数字和运算符的存储。当遇到数字压入数字栈,遇到运算符则与运算符栈顶元素比较优先级,如果大于栈顶元素则入栈,否则弹出栈顶运算符进行运算,直到表达式字符串结束。

在分享过程中我们可以看到其他同学对于问题的求解思路,学习他人解决问题的方法,再比较自身,不断优化自己的程序,这也是我们提高自己代码质量的一个很好的途径。

知识的分享是学习的一种重要的方式,卓越班的分享会在进行课外的拓展与延申的同时,还密切关注着同学们在课堂上的热点与难点,并及时的通过知识分享帮助同学们更好的解决并理解这些问题。不要让想法停留在脑海,不要把问题停留心中,就在此刻努力,在未来一定能遇见更好的自己。

5eedd1e80e2ae80b8598e29861e7b6e9.gif 955d21cdd3e6e911bfdb6a77eac8dad5.png

编       辑:王彤瑶

审       核:王世睿 曹永强

责任编辑:张子恒

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值