我在链表中为排序插入实现一个迭代函数时遇到了一些困难。我以前使用递归来完成这一点,这在调用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;
}
}
答案 0 :(得分:2)
我不会为你编写代码,但会提供一些提示。
从根本上说,有两种情况:
l
。如果我是你,我会首先使用笔和纸来处理这两种情况。