リンクされたリストに並べ替えられた挿入のための 1 つの反復関数を実装するのにいくつかの困難があります。私は以前、関数が呼び出されたときにはるかに簡単な再帰でそれを行いましたinsert()
が、ここでは条件を実装する方法に少し混乱してい(l->data < data)
ます:
typedef struct E_Type * List;
struct E_Type
{
int data;
struct E_Type* next;
};
そして機能:
insert(List & l, int data){
if (l == 0 || l->data > data){
List new_list = new E_Type;
new_list->data = data;
new_list->next = l;
l = new_list;
}
else if (l->data < data){
List new_list = new E_Type;
new_list->data = data;
new_list->next = l; //i am shooting in the dark with this one
l = new_list;
}
}