返回0表示插入失败! ");
return 0;
}
/* 查找第pos个结点 */
while(cp != NULL){
i++;
if(pos == i){
break;
}else{
ap = cp;
cp = cp- >next;
}
}
/* 产生新结点,若分配失败,则停止插入 */
newP = malloc(sizeof(struct sNode));
if(newP == NULL){
printf( "内存分配失败,无法进行插入操作! ");
return 0;
}
/* 把x的值赋给新结点的data域 */
newP- >data = x;
/* 把新结点插入到表头 */
if(ap == NULL){
newP- >next = cp; /* 或改为newP->next = *hl; */
*hl = newP;
}
/* 把新结点插入到ap和cp之间 */
else{
newP- >next = cp;
ap- >next = newP;
}
return 1; /* 插入成功返回1 */
}
/* 12.向有序单链表中插入元素x结点,使得插入后仍然有序 */
void insertOrderList(struct sNode* *hl, elemType x)
{
/* 把单链表的表头指针赋给cp,把ap置空 */
struct sNode *cp = *hl, *ap = NULL;
/* 建立新结点 */
struct sNode *newP;
newP = malloc(sizeof(struct sNode));
if(newP == NULL){
printf( "内在分配失败,退出运行! ");
exit(1);
}
newP- >data = x; /* 把x的值赋给新结点的data域 */
/* 把新结点插入