线性结构是数据结构最为基础的部分,包括线性表、堆栈和队列,每一种结构都有顺序存储和链式存储两种存储结构,以下分别对相关程序做了总结。最后介绍了利用链表结构如何解决多项式加法的问题。
线性表
由同类型数据元素构成有序序列的线性结构
顺序存储
1 | typedef int Position; |
链式存储
1 | typedef struct LNode *PtrToLNode; |
堆栈
具有一定操作约束的线性表,只在一端进行插入、删除
顺序存储
1 | typedef int Position; |
顺序存储时选择在数组的尾巴上进行操作比较方便。
线性存储
1 | typedef struct SNode *PtrToSNode; |
线性存储时选择在链式表的第一个节点进行操作,因为如果是单向链表,删除尾巴节点时,无法指向前面一个节点。
队列
具有一定操作约束的线性表,只能一端插入,另一端删除。
顺序存储
1 | typedef int Position; |
数组插入和删除的节点只要分别头尾节点即可,两种情况的复杂度一样。
链式存储
1 | typedef struct Node *PtrToNode; |
因为单向链式表无法在尾巴节点进行删除操作,所以必须头节点删除,尾节点作插入操作。
应用实例—多项式加法
其中比较重要的程序解释如下
本文作者:
findoh
本文链接: http://example.com/2021/06/29/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E2%80%94%E7%BA%BF%E6%80%A7%E7%BB%93%E6%9E%84/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: http://example.com/2021/06/29/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E2%80%94%E7%BA%BF%E6%80%A7%E7%BB%93%E6%9E%84/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!