struct LinkNode //链表的节点类
{
int data;
LinkNode *link;
LinkNode(int a) :data(a), link(nullptr){ }
LinkNode() :link(nullptr){ }
};
LinkNode *create(){ //通过键盘输入创建有序链表(从小到大)
int elem;
LinkNode * head = nullptr;
std::cin.clear();
std::cout << "输入链表的中的元素:";
while (std::cin >> elem&&!std::cin.eof())
{
auto newnode = new LinkNode(elem);
if (newnode == nullptr)
{
std::cerr << "内存分配错误!" << std::endl;
exit(1);
}
if (head == nullptr)
{
head = newnode;
}
else
{
auto p = head;
if (elem <= p->data){
newnode->link = head;
head = newnode;
}
else
{
while (p->link != nullptr && p->link->data < elem)
p = p->link;
newnode->link = p->link;
p->link = newnode;
}
}
}
return head;
}