【数据结构】写一个算法 1.顺序存储线性表中的元素 按值非递减有序排列 将元素e插入到顺序表中使之

2025-04-07 17:05:42
推荐回答(1个)
回答1:

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;
}