}
/* 9.向单链表的表头插入一个元素 */
void insertFirstList(struct sNode* *hl, elemType x)
{
struct sNode *newP;
newP = malloc(sizeof(struct sNode));
if(newP == NULL){
printf( "内存分配失败,退出运行! ");
exit(1);
}
newP- >data = x; /* 把x的值赋给新结点的data域 */
/* 把新结点作为新的表头结点插入 */
newP- >next = *hl;
*hl = newP;
return;
}
/* 10.向单链表的末尾添加一个元素 */
void insertLastList(struct sNode* *hl, elemType x)
{
struct sNode *newP;
newP = malloc(sizeof(struct sNode));
if(newP == NULL){
printf( "内在分配失败,退出运行! ");
exit(1);
}
/* 把x的值赋给新结点的data域,把空值赋给新结点的next域 */
newP- >data = x;
newP- >next = NULL;
/* 若原表为空,则作为表头结点插入 */
if(*hl == NULL){
*hl = newP;
}
/* 查找到表尾结点并完成插入 */
else{
struct sNode *p = NULL;
while(p- >next != NULL){
p = p- >next;
}
p- >next = newP;
}
return;
}
/* 11.向单链表中第pos个结点位置插入元素为x的结点,若插入成功返回1,否则返回0 */
int insetPosList(struct sNode* *hl, int pos, elemType x){
int i = 0;
struct sNode *newP;
struct sNode *cp = *hl, *ap = NULL;
/* 对pos值小于等于0的情况进行处理 */
if(pos <= 0){
printf( "pos值非法,