题目
关于数据结构线性链表中的指针后移和删除结点的疑问
我想问问指针后移和删除元素是不是一回事?
比如在线性链表中有三个结点A、B、C
A指向B,B指向C
那么A->next=A->next->next;(删除B结点,这里我想问问,是不是这儿一定要加个free(B)才算删除B结点?)
与B=B->next;(指针后移)
是不是都是一回事,把B结点删除了.
假如是一回事的话,那么算法
Status Insert(LinkList &L,int i,int b)//在无头结点链表L的第i个元素之前插入元素b
{
p=L;
q=(LinkList*)malloc(sizeof(LNode));
q.data=b;
if(i==1)
{
q->next=p;
L=q; //插入在链表头部
}
else
{
while(--i>1)
p=p->next;
q->next=p->next;
p->next=q; //插入
}
}//Insert
里面的
while(--i>1)
p=p->next;
实际上也就是在一直删除结点咯?
那不就是做了多余的事情吗?要求的只是“在无头结点链表L的第i个元素之前插入元素b”,可结果插入是插入了,却删除了许多的结点.
十分不解,期待回答.(是在没分了,想给也给不了.)
是不是这样一回事
A->next是存储了结点A的后继结点的位置.
那么 A->next =A->next->next的意思就是改变了这个位置,A的后继结点变成了C.
而B=B->next,就是让指针B指向了B的后继结点,但因为A的指针域无变化,所以B仍然是A的后继结点.
最后我还想问个问题,两个结点之间比如一个结点A和B,只要A->next所储存的是B的位置,无论有没有指针指向B,B就是A的后继结点.
我想问问指针后移和删除元素是不是一回事?
比如在线性链表中有三个结点A、B、C
A指向B,B指向C
那么A->next=A->next->next;(删除B结点,这里我想问问,是不是这儿一定要加个free(B)才算删除B结点?)
与B=B->next;(指针后移)
是不是都是一回事,把B结点删除了.
假如是一回事的话,那么算法
Status Insert(LinkList &L,int i,int b)//在无头结点链表L的第i个元素之前插入元素b
{
p=L;
q=(LinkList*)malloc(sizeof(LNode));
q.data=b;
if(i==1)
{
q->next=p;
L=q; //插入在链表头部
}
else
{
while(--i>1)
p=p->next;
q->next=p->next;
p->next=q; //插入
}
}//Insert
里面的
while(--i>1)
p=p->next;
实际上也就是在一直删除结点咯?
那不就是做了多余的事情吗?要求的只是“在无头结点链表L的第i个元素之前插入元素b”,可结果插入是插入了,却删除了许多的结点.
十分不解,期待回答.(是在没分了,想给也给不了.)
是不是这样一回事
A->next是存储了结点A的后继结点的位置.
那么 A->next =A->next->next的意思就是改变了这个位置,A的后继结点变成了C.
而B=B->next,就是让指针B指向了B的后继结点,但因为A的指针域无变化,所以B仍然是A的后继结点.
最后我还想问个问题,两个结点之间比如一个结点A和B,只要A->next所储存的是B的位置,无论有没有指针指向B,B就是A的后继结点.
提问时间:2020-12-21
答案
那么A->next=A->next->next;(删除B结点,这里我想问问,是不是这儿一定要加个free(B)才算删除B结点?)
首先 A->next =A->next->next 意思只是将A的指针指向C 不是说 删除B B在内存中还是存在的 只是和A C失去了前后继的关系 用free 来释放B节点
而后面的p=p->next 不是删除节点,而是使得指针p向后移动 明白吗
首先 A->next =A->next->next 意思只是将A的指针指向C 不是说 删除B B在内存中还是存在的 只是和A C失去了前后继的关系 用free 来释放B节点
而后面的p=p->next 不是删除节点,而是使得指针p向后移动 明白吗
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1x的25次方÷【(-x²)³】的四次方 ×(-x³)²÷(-x²)的五次方
- 2古代的希腊是现在的哪个国家?
- 3数学中的“!”是什么意思?
- 4有一个字节的二进制为11111111,如将其作为有符号整数的编码,它表示?
- 5两个字,能组成两个不同的字,组成的字能组词?除了“旮旯”还有什么字?
- 6一个棱长a分米的正方体木块锯成两个一样的长方体,每个长方体的表面积是多少
- 73a的x次方b的4次方和负五分之ab的2y方是同类项,求3x-4y的值
- 8已知x+y+z=2x-y=3x+2z,求x:y:z的值
- 9il complimento che odio piu di tutti 这是什么语
- 10例:地壳,南半球,回归线 再写5个与地球相关的词语
热门考点