推荐回答
LinkedListSplitLinkedList&list{//创建新链表存放值为偶数的节点LinkedListlist2=create;Node*p1,*p2,*p3;//p3指向值为偶数的链表的头结点,用于指向值为偶数的链表最后一个节点p3=list2.head;//p1,p2指向原始链表的头结点//p1用于指向值为奇数的链表最后一个节点//p2用于指向当前处理的节点p1=p2=list.head;whilep2{//循环处理节点,直到处理到空节点ifp2->data%2==0{//处理值为偶数的节点//原始链表删除这个节点ifp2==list.headlist.head=p2->next;elsep1->next=p2->next;//原始链表大小减小一个list.size--;//新建的值为偶数的链表增加这个节点iflist2.head==0list2.head=p2;elsep3->next=p2;p3=p2;p2=p2->next;p3->next=0;//新建的值为偶数的链表大小增加一个list2.size++;}else{//处理值为奇数的节点p1=p2;p2=p2->next;}}//返回值为偶数的链表returnlist2;。
车广侠2019-11-05 20:03:55
提示您:回答为网友贡献,仅供参考。
其他回答
-
#include#include#defineOVERFLOW-1#defineOK1#defineERROR0typedefintStatus;typedefcharTElemType;typedefstructBiTNode{TElemTypedata;structBiTNode*lchild;//左孩子指针structBiTNode*rchild;//右孩子指针}BiTNode;typedefBiTNode*BiTree;StatusCreateBiTreeBiTree&T{//按给定的带空指针标记的先序序列建二叉链表charch;ch=getchar;ifch==''''T=NULL;else{if!T=BiTNode*mallocsizeofBiTNodeexitOVERFLOW;T->data=ch;//生成根结点CreateBiTreeT->lchild;//构造左子树CreateBiTreeT->rchild;//构造右子树}returnOK;}//CreateBiTreevoidDisplayTElemType&e{printf"%c ",e;}voidInOrderTraverseBiTreeT,void*visitTElemType&e{//先序遍历二叉树ifT==NULLreturn;InOrderTraverseT->lchild,visit;//遍历左子树visitT->data;//访问根结点InOrderTraverseT->rchild,visit;//遍历右子树}voidmain{BiTreeR;printf"输入带空指针标记的先序序列:例如ABCD";CreateBiTreeR;printf"该二叉树的中序序列为:";InOrderTraverseR,Display;printf"";。
齐晓兰2019-11-05 20:54:46
-
在结构上与二维数组有些相似,每一行、每一列都有指针指示它的地址,所以知道所有行和列的指针后,可以确定链表上的任何一个元素地址。
龚峻峰2019-11-05 20:37:05
-
链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点#include#includestructNode{intdata;Node*next;};*函数名称:insert*函数功能:在连表中插入元素.*输入:root链表头指针,idx新元素插入位置,d新元素中的数据域内容*输出:无---------------------------------------------------------------voidinsertNode*root,intidx,intd{Node*tmp=root;forinti=0;inext;iftmp==NULLreturn;}Node*tmp2=newNode;tmp2->data=d;tmp2->next=tmp->next;tmp->next=tmp2;}--------------------------------------------------*函数名称:del*函数功能:删除链表中的元素*输入:root链表头指针,idx被删除元素位置输出:被删除元素中的数据域.如果删除失败返回-1intdelNode*root,intidx{Node*tmp=root;forinti=0;inext;iftmp==NULLreturn-1;}intret=tmp->next->data;tmp->next=tmp->next->next;returnret;}voidprintNode*root{forNode*tmp=root;tmp!=NULL;tmp=tmp->nextprintf"%d",tmp->data;printf"";}intmain{Node*root;root=newNode;root->data=-1;return0;}C语言是学习链表的很好的学习工具。
龚小章2019-11-05 20:19:31