|
队列和栈结构的概念理解
栈是仅限制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶。表中无元素时为空栈。栈的修改是按后进先出的原则进行的。通常栈有顺序栈和链栈两种存储结构。
队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头,允许插入的一端称为队尾,队列的操作原则是先进先出的。队列也有顺序存储和链式存储两种存储结构。
线性表中单链表相关算法设计与实现
一些基础但又重要的单链表相关算法,如:
1.打印单链表,void PrintList(List list);使用一个指针遍历所有链表节点。
2.两个升序链表,打印tarList中的相应元素,这些元素的序号由SeqList指定,void PrintLots(List tarList,
List seqList);使用两个指针分别遍历两个链表,每次取出序列链表的一个序号后,根据该序号,到达目标链表指定节点。
3.两个升序链表的交集 ,List Intersect(List l1, List l2);
4.两个升序链表的并集 ,List Join(List l1, List l2);
5.单链表就地置逆,void Reverse(List
l);使用三个指针表示前驱,当前和后继节点,每次将当前节点的Next指向前驱节点,然后向后遍历直到链表末尾。
二叉树的遍历
遍历的过程就是把非线性结构的二叉树中的结点排成一个线性序列的过程。
二叉树遍历方法可分为两大类,一类是“宽度优先”法,即从根结点开始,由上到下,从左往右一层一层的遍历;另一类是“深度优先法”,即一棵子树一棵子树的遍历。 |
|