数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目
Posted il_持之以恒_li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目相关的知识,希望对你有一定的参考价值。
1.将一个带头节点的单链表A分解成两个带头节点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B中含有原表中序号为偶数的元素,且保持相对顺序不变
思路:原本是想定义一个变量用来记单链表A的序号的,但是后面代码写出来,发现,根本没有必要定义这个变量。用一个指针pa1直接指向带头节点的单链表A的后一个节点(也就是序号为1(奇数)的节点),它的后一个节点(如果不为NULL),那么肯定是一个序号为偶数的节点,对单链表A的操作是用指针pa2指向pa1的后一个节点,然后pa1的后一个节点直接指向pa2后一个节点,然后将pa2后一个节点为NULL,之后将pa2接在单链表B后面。【描述的不是很清楚哈!】
参考代码:
void function1(LinkList &A,LinkList &B)
LNode *pa1 = A->next,*pa2;
// 建立单链表B
B = (LNode *)malloc(sizeof(LNode));
B->next = NULL;
LNode *pb = B;
while(pa1)
if(pa1->next)
pa2 = pa1->next;
pa1->next = pa2->next;
pa2->next = NULL;
pb->next = pa2;
pb = pa2;
pa1 = pa1->next;
运行结果:
以上是关于数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目的主要内容,如果未能解决你的问题,请参考以下文章
数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码
数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码