一、单选题
1、
2、
答案:D
解析:
因为h不带头结点,所以h指的就是第一个元素,在第一个元素前面插入t,所以t的下一个指向h,之后,h重新变为指向第一个元素;
头指针—头结点—首元结点
3、
单链表的插入
因为在找位置的时候,是一个个找的,因此要用一个变量不断指向线性表的下一个元素;
Status ListInsert_L(LinkList&L,int i,ElemType e)//在线性表第i个位置插入元素e//插入和创建不一样,插入是在创建的基础上进行的改动;
{
LinkList p;
p=L;//因为现在需要找的位置是插入位置的前一个,插入的位置也有可能为头结点的后面,因此以p为起点;
int j=0;//因为以p为起点,所以j的初始值为0;
while(p&&j<i-1)//这里是在寻找要插入结点位置的前一个
{
p=p->next;
j++;
}
if(!p||j>i-1) return ERROR;//p为空的话就停止;
LinkList s;
s=(LinkList)malloc(sizeof(LNode));//要为插入的地方创建新的结点;
s->data=e;//千万不要忘记在创建结点之后给新结点赋值;
s->next=p->next;
p->next=s;
return OK;
}
千万不要忘记在创建新结点之后赋值
插入的时候,先要找到前一个插入的位置,因为插入的位置也有可能为头结点的后面,因此以p为起点,所以j的初始值为0(这里还用了一个变量j是因为怕有错误的位置出现)。找到位置之后,创建新的结点,输入元素,然后再将新结点放到找到的p的位置的后面;
4、
答案:A
5、