当前位置:首页 > 树和二叉树-层序遍历二叉树
int a[N],b[M],c[T];
printf(“please input numbers:\\n”); for (i=0;i i=0;j=0;m=0;k=0;/*分别赋值为0,即指向数组的第一元素*/ while(i if(b[j] while(b[j]==same)j++; while(c[k]==same)k++; while(i while(i while(i printf(\输出删除元素后的数组a/* for (r=0;r 【程序调试】 程序运行是屏幕显示:please input numbers: 此时输入三组测试数据,数据间用空格隔开: 2 3 4回车 3 4 5 6 回车 4 5 6 7 8 回车 程序输出结果:a[3]={2,3},即删除了数组a中即在b和c中都出现的元素。 【单链表存储结构参考程序】 # include struct LNode *next; }Lnode,*LinkList;/*定义链表节点的结构*/ void main ( ) {/*功能:建立单链表A,B,C,并且删除A中均在B和C中出现的数据。*/ CreateList (LinkList head);/*函数声明*/ ListDelete (LinkList La, LinkList Lb ,LinkList Lc); Print (LinkList head); LinkList headA,headB,headC; headA=NULL; headB=NULL; headC=NULL; headA=CreateList(headA);/*建立链表*/ headB=CreateList(headB); headC=CreateList(headC); print(headA);/*输出显示链表数据*/ print(headB); print(headC); headA=ListDelete(headA,headB,headC);/*删除A中满足条件的节点*/ Print (headA); } LinkList createList(LinkList head) {/*功能:建立有头节点head的数据单链表*/ LinkList p,q; p=q=(LinkList)malloc(sizeof(Lnode)); printf(\scanf(\p->next=NULL; while(p->data>0)/*建立链表的输入数据必须大于0,数据输入时以输入任何负数作为结束*/ { if(head==NULL) head=p; else{ q->next=p; q=p;} p=(LinkList)malloc(sizeof(Lnode)); printf(\scanf(\p->next=NULL; } return head; } LinkList ListDelete(LinkList La,LinkList Lb,LinkList Lc) {/*功能:删除A中的有关节点*/ LinkList pa,pb,pc,qa; pa=La; qa=La; pb=Lb; pc=Lc; while(pb&&pc) { if(pb->data else if(pb->data>pc->data) pc=pc->next; else/*首先找到B和C中都存在的数据,并且定位*/ { if(pa->data else if(pa->data==pb->data)/*删除节点*/ { qa->next=pa->next; f ree(pa); pa=qa->next; } else pb=pb->next; }/*else*/ }/*while*/ return La; } void print(LinkList head) {/*输出链表数据*/ LinkList r; r=head; printf(\while(r!=NULL)
共分享92篇相关文档