{ int a[10]; //定义一个数据元素为10个的数组
for (int i = 0; i < 10; i ++) a[i] = i * 2; //给a[]赋值 list la(a, 10); //建立以a[]中数据元素为单链表数据元素的单链表la la.show(); //在屏幕上显示单链表la中的数据元素 for (int j = 0; j < 10; j ++) a[j] = j * 3; //给a[]重新赋值 list lb(a, 10); //建立以a[]中数据元素为单链表数据元素的单链表lb lb.show(); //在屏幕上显示单链表lb中的数据元素
list lc; //定义合并后的单链表 node* pa = la.head -> next; node* pb = lb.head -> next; node* pc = lc.head -> next; while (pa != NULL || pb != NULL)//循环执行合并操作,合并后的数据保存在单链表lc中 { if (((pa != NULL) && (pa -> data > pb -> data)) || (pa == NULL)) { lc.head -> next = pb; pb = pb -> next; lc.head -> next -> next = pc; pc = lc.head -> next; } else { lc.head -> next = pa; pa = pa -> next; lc.head -> next -> next = pc; pc = lc.head -> next; } } lc.show(); //显示合并后的单链表lc中的数据元素 }
void exercise2(void) //实验二的函数实现 { int a[10]; //定义一个数据元素为10个的数组 for (int i = 0; i < 10; i ++) a[i] = i * 2 + 1; //给a[]赋值 list la(a, 10); //建立以a[]中数据元素为单链表数据元素的单链表la la.show(); //在屏幕上显示单链表la中的数据元素 for (int k = 0; k < 10; k ++) a[k] = k * 3; //给a[]赋值 list lb(a, 10); //建立以a[]中数据元素为单链表数据元素的单链表la lb.show(); //在屏幕上显示单链表lb中的数据元素
node* pa = la.head -> next; node* pb = lb.head -> next; node* pc = NULL; while ((pa != NULL) && (pb != NULL))//函数实现求交集操作 { if (pa -> data < pb -> data) pa = pa -> next; else if (pa -> data > pb -> data) pb = pb -> next; else // (pa -> data == pb -> data) { if (pc == NULL) { pc = la.head -> next; pc -> data = pa -> data; } else if (pa -> data != pc -> data) { pc = pc -> next; pc -> data = pa -> data; |