题目
关于数据结构线性链表中的指针后移和删除结点的疑问
我想问问指针后移和删除元素是不是一回事?
比如在线性链表中有三个结点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的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1改错 1.A(What) B(season) do C(you) like best?D(Winter).2.A He B teaches C I English D this term.
- 2怎么因式分解(x-2y)^2-(x+2y)^2+2x^2+8y^2
- 3家长会在黑板上写什么标题好?(六字内)
- 4课外题,很有难度哦,有谁这么聪明?
- 5(+2又六分之一)-(+2又九分之二)-(+5又六分之一)-(+4又九分之七)
- 6以"假如生命是……"开头,写一段话,表达自己对生命的理解
- 7英语 用适当形式填空
- 8甲数除以乙数的商是1.4,甲乙两数的最简整数比是_.
- 9常见的形码汉字输入技术有表形码和五笔字型码 这句话对吗
- 10they are cucumbers,改成一般疑问句
热门考点
- 1地球是月亮的49倍用英语怎么说
- 2张亮从甲城到乙城,第一小时行全程的40%,第二小时比第一小时多行20千米,距乙城还有80千米.
- 3看见彩虹 作文
- 4“水的饱和气压指的只是空气中水蒸气的‘分气压’,与其他气体的压强无关.”
- 5《鲁滨孙漂流记》的读后感结尾怎么写?
- 6水中捞月的歇后语
- 7The first film-show was in Paris on December 28th, 1895. It lasted twenty minutes and the audience
- 8神经调节的结构基础是反射弧还是中枢神经系统
- 9郭沫若写《天上的街市》写作背景是什么?
- 10求极限x趋于0,(x*sin(2/x))的值