1个结点 headl=pl-next; //使head1指向a链表中第2个结点 else //如果不是第一个结点 {p-next=pl-next; //使p-next指向pl的下一个结点,即删去p1当前指向的结点 pl=pl-next; //p1指向p1的下一个结点 ee //b链表中没有与a链表中当前结点相同的学号 {p=pl: pl=pl-next:} //pl指向a链表中的...
从a链表中删去与b链表中有相同学号的那些结点。 有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同学号的那些结点。 解题思路: 对于b链表中的每一个节点,都从a链表的表头开始查找,如果可以找到,直接删除,如果找不到,继续从a链表表头找下一个b的节点。 #include <stdio.h> typedef struc...
从a链表中删去与b链表中有相同学号的那些结点 解题思路: 对于b链表中的每一个节点,都从a链表的表头开始查找,如果可以找到,直接删除,如果找不到,继续从a链表表头找下一个b的节点。 #include<stdio.h>typedefstructstudent{intnum;doublegrade;structstudent*next;} student; student *del(student *a, student *b...
next; } else //学号不同,则p1,p2指针依次后移 { p2=p1; p1=p1->next; } } b=b->next; } return head; } int main(int argc, char *argv[]) { STU *a,*b,*c; printf("\n请输入链表a的信息,学号小于零时结束输入:格式(学号 成绩)\n"); a=create(); printf("\n请输入链表b的信息...
{struct student a[LA]={{101,"Wang”},{102,"Li"},{105,"Zhang"},{106,"Wei"}};
这个太简单,需要两个循环嵌套,我用类C语句写个大概 do { flag=0 do /*对A链每个节点与B链比较*/ if (学号相同) flag=1 while(遍历B链);if flag=1 删除A链本节点;}while(遍历A链)
我写过类似的, 你稍微改一下!这个是输入两个整数链表,然后相同的删除,比如一个输入1,2,3,4,0是结束,第二个输入1,2,0那么结果就是3,4!include <iostream> include <malloc.h> include<stdlib.h> using namespace std;typedef int elemtype; //定义数据域的类型 typedef struct link...
程序我不写啊,我讲讲思路:取A链表中头结点学号,便利B链表,如果有相同的,p1=head,把头结点free,head=p1->next 然后依次取A中每一结点学号,便利B链表查找,相同改变next指针值
有两个链表a和b,从a链表中删去与b链表中有相同学号的那些结点!/ include <stdio.h> include <string.h> include <malloc.h> struct student { int num;char name[10];struct student *next;};int main(){ void print(struct student *head);struct student *creat();struct student *solve(...
设有a,b两个单链表,每个链表的结点中有一个数据和指向下一结点的指针,a,b为两链表的头指针:(1)将a链表中的所有数据相加并输出其和。(2)将b链表接在a链表的尾部连成