//头文件
#ifndef LIST_H
#define LIST_H
#include
#include
using namespace std;
template
class LinkNode{
public:
T data;
LinkNode
* link;
LinkNode()
{
}
LinkNode(const T& item,LinkNode
*ptr=NULL){ data = item; link = ptr; } }; template
class List{ private: LinkNode
* head; LinkNode
* currPos; public: List(); ~List(); void Append(const T value);//为链表赋值,规定链表长度 void clear(); void print(); void HeadToTail();//将链表倒置 //最大值,节点数,平均值 T MaxValue(); int Count(); T Average(); //合并链表 void AppendIncre(const T value); void Merge(List
& ptr);//合并两个已排序的链表 }; template
void List
::AppendIncre(const T value) { if (head == NULL) { head = new LinkNode
(value); currPos = head; } else { LinkNode
* p = currPos; if (value < (p->data)) { return ; } p->link = new LinkNode
(value); p = p->link; p->link = NULL; currPos = p; } } template
void List
::Merge(List
& ptr) { LinkNode
* pa = head; LinkNode
* pb = ptr.head; //由于链表不带头结点,所以先比较第一个数据的大小,从而确定合并后的链表的头指针的位置 LinkNode
* pd = (pa->data >= pb->data) ? pa : pb; LinkNode
* p = new LinkNode
(pd->data); LinkNode
* pHead = p; if (p-&g
设A和B是两个单链表,其表中元素递增有序,使用一算法将A和B归并成一个案元素递减有序的单链表C(该程序中的功能包含了上几个博客中的部分功能)
最新推荐文章于 2023-04-04 12:23:18 发布