数据结构 - 从一个链表中删除在另一个链表中的元素(C++)

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

/*Sort both list from small to big. And then use the following code.*/#include <iostream>using namespace std;struct Node{ char data; Node* next;};Node* create(){ Node* head = NULL; Node* rear = head; Node* p; // The pointer points to new created node. char tmp; do {  cout << "Please input integer or char '#':";  cin >> tmp;  if(tmp != '#')  {   p = new Node;   p->data = tmp;   p->next = NULL;   if(head == NULL)   {    head = p;   }   else   {    rear->next = p;   }   rear = p;  } } while(tmp != '#'); return head;}void print(Node* head){ Node* p = head; if(head != NULL) {  do  {   cout << p->data << ' ';   p = p->next;  }  while(p != NULL); } cout << endl;}Node* del(Node* l1, Node* l2)if(!l1 || !l2) {  return NULL; } Node *p = new Node; p->next = l1; Node *pL1 = l1, *pL2 = l2, *head = p; while(pL1 && pL2) {  if(pL1->data < pL2->data)  {   pL1 = pL1->next;   p = p->next;  }  else if(pL1->data > pL2->data)  {   pL2 = pL2->next;  }  else  {   pL1 = pL1->next;   p->next = pL1;  } } l1 = head->next; return l1;}int main()cout << "Please input the first list:" << endl; Node* l1 = create(); cout << endl << "Please input the second list:" << endl; Node* l2 = create(); cout << endl << "--------------------------" << endlcout << "The first list is: "; print(l1); cout << "The second list is: "; print(l2); Node* l = del(l1, l2); cout << endl << "The result list is: "; print(l); return 0;}// Output:/*Please input the first list:Please input integer or char '#':1Please input integer or char '#':1Please input integer or char '#':1Please input integer or char '#':1Please input integer or char '#':3Please input integer or char '#':3Please input integer or char '#':3Please input integer or char '#':3Please input integer or char '#':4Please input integer or char '#':5Please input integer or char '#':6Please input integer or char '#':6Please input integer or char '#':6Please input integer or char '#':7Please input integer or char '#':7Please input integer or char '#':8Please input integer or char '#':8Please input integer or char '#':8Please input integer or char '#':9Please input integer or char '#':9Please input integer or char '#':9Please input integer or char '#':9Please input integer or char '#':#Please input the second list:Please input integer or char '#':1Please input integer or char '#':2Please input integer or char '#':5Please input integer or char '#':5Please input integer or char '#':5Please input integer or char '#':7Please input integer or char '#':7Please input integer or char '#':7Please input integer or char '#':7Please input integer or char '#':7Please input integer or char '#':9Please input integer or char '#':#--------------------------The first list is: 1 1 1 1 3 3 3 3 4 5 6 6 6 7 7 8 8 8 9 9 9 9The second list is: 1 2 5 5 5 7 7 7 7 7 9The result list is: 3 3 3 3 4 6 6 6 8 8 8*/
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值