#include <iostream>
using namespace std;
struct lelem
{
int data;
lelem *next;
};
void print(lelem *head)
{
lelem *pelem=head;
while (pelem!=0)
{
cout << pelem->data << endl;
pelem=pelem->next;
}
cout << "\n"<<endl;
}
void insert_sorted(lelem*& head, int d)
{
lelem** current = &head;
while (*current != nullptr && (*current)->data < d)
{
current = &(*current)->next; // zum Zeiger auf das übernächste Element gehen
}
*current = new lelem{d, *current};
}
int main()
{
lelem*head=NULL;
cout << "Testen von insert_sorted:\n"<<endl;
insert_sorted(head,5);
insert_sorted(head,7);
insert_sorted(head,3);
insert_sorted(head,9);
insert_sorted(head,10);
print(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKc3RydWN0IGxlbGVtCnsKICAgIGludCBkYXRhOwogICAgbGVsZW0gKm5leHQ7Cn07CiAKdm9pZCBwcmludChsZWxlbSAqaGVhZCkKewogICAgbGVsZW0gKnBlbGVtPWhlYWQ7CiAgICB3aGlsZSAocGVsZW0hPTApCiAgICB7CiAgICAgICAgY291dCA8PCBwZWxlbS0+ZGF0YSA8PCBlbmRsOwogICAgICAgIHBlbGVtPXBlbGVtLT5uZXh0OwogICAgfQogICAgY291dCA8PCAiXG4iPDxlbmRsOwp9CiAKdm9pZCBpbnNlcnRfc29ydGVkKGxlbGVtKiYgaGVhZCwgaW50IGQpCnsKICAgbGVsZW0qKiBjdXJyZW50ID0gJmhlYWQ7CiAKICAgd2hpbGUgKCpjdXJyZW50ICE9IG51bGxwdHIgJiYgKCpjdXJyZW50KS0+ZGF0YSA8IGQpCiAgIHsKICAgICAgIGN1cnJlbnQgPSAmKCpjdXJyZW50KS0+bmV4dDsgLy8genVtIFplaWdlciBhdWYgZGFzIMO8YmVybsOkY2hzdGUgRWxlbWVudCBnZWhlbgogICB9CiAgICpjdXJyZW50ID0gbmV3IGxlbGVte2QsICpjdXJyZW50fTsKfQogCmludCBtYWluKCkKewogICAgbGVsZW0qaGVhZD1OVUxMOwogCiAgICBjb3V0IDw8ICJUZXN0ZW4gdm9uIGluc2VydF9zb3J0ZWQ6XG4iPDxlbmRsOwogCiAgICBpbnNlcnRfc29ydGVkKGhlYWQsNSk7CiAgICBpbnNlcnRfc29ydGVkKGhlYWQsNyk7CiAgICBpbnNlcnRfc29ydGVkKGhlYWQsMyk7CiAgICBpbnNlcnRfc29ydGVkKGhlYWQsOSk7CiAgICBpbnNlcnRfc29ydGVkKGhlYWQsMTApOwogICAgcHJpbnQoaGVhZCk7CiAKIAogICAgcmV0dXJuIDA7Cn0=