一个有序的数据元素序列,已线性链表存储,设计一个算法,在该链表上插入一个新元素,保持链表的有序性
1个回答
展开全部
int insert(List **lptr, ElemType e)
{
//lptr为有序的链表,e为要插入的元素,如果插入成功则返回1,否则返回0
List *newNode, *cur, *prior;
newNode = (List*)malloc(sizeof(List));
if (newNode == NULL) return 0; //分配空间失败
newNode->data = e;
cur = *lptr;
prior = *lptr;
while (cur != NULL && cur->data < e){//查找插入的位置
prior = cur;
cur = cur->next;
}
if (cur == *lptr){
//插入到链表的头部
newNode->next = *lptr;
*lptr = newNode; //lptr指向链表的第一个元素
}else{
//插入到prior之后
prior-> = newNode;
newNode->next = cur;
}
return 1;
}
用C语言写的,望楼主采纳
{
//lptr为有序的链表,e为要插入的元素,如果插入成功则返回1,否则返回0
List *newNode, *cur, *prior;
newNode = (List*)malloc(sizeof(List));
if (newNode == NULL) return 0; //分配空间失败
newNode->data = e;
cur = *lptr;
prior = *lptr;
while (cur != NULL && cur->data < e){//查找插入的位置
prior = cur;
cur = cur->next;
}
if (cur == *lptr){
//插入到链表的头部
newNode->next = *lptr;
*lptr = newNode; //lptr指向链表的第一个元素
}else{
//插入到prior之后
prior-> = newNode;
newNode->next = cur;
}
return 1;
}
用C语言写的,望楼主采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询