900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 链表(开辟和不开辟新空间)

链表(开辟和不开辟新空间)

时间:2020-10-26 20:56:03

相关推荐

链表(开辟和不开辟新空间)

开辟新空间

1相当于创建了一个链表,因此需要创造一个内存空间

2要定义一个移动指针

3因为是新链表,所以如果将跳出的节点插入这个新链表中,可以用头插或者尾插创造一个新节点交换此节点的数据域,这样原节点和这个节点所在的链表不会发生改变。

NODE L = (NODE)malloc(sizeof(lnode));//创造一个新的链表;L->next = NULL;NODE M = L;//移动指针 NODE newnode = (NODE)malloc(sizeof(lnode));newnode->data = p->data;newnode->next = M->next;M->next = newnode;

不开辟新空间

1需要先定义一个移动指针将头结点的下一个节点给保存了(首元节点)

2需要将其中一个链表的头结点与后面的节点断开

3在跳出一个节点是,不能直接使用移动指针,因为会使移动指针丢失,所以需要再定义一个临时指针指向跳出的节点的移动指针,为了保持移动指针能够正常跳到下一个节点,

重要因为临时指针是移动指针的 所以如果改变临时指针,则会改变移动指针的东西,所以如果移动指针要移动的话需要在临时指针操作之前跳转。

4 因为断开的一个链表中操作,原链表遭到破坏,因为直接用了当前节点的操作,会使这个节点所在的链表遭到破坏。

1 p = A->next;2 A->next = NULL;3 r = p ; p = p->next;

4

若开辟新空间 就连同结点一起开辟

若不开辟空间 就定义临时指针

如果想用直接用跳出的移动指针 ,就一定要定义临时指针

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。