假设以带头结点的单链表表示有序表,单链表的类型定义如下: typedef struct node{ DataType data; struct node*next }LinkNode,*LinkList; 编

admin2008-07-01  17

问题 假设以带头结点的单链表表示有序表,单链表的类型定义如下:
   typedef struct node{
     DataType data;
     struct node*next
   }LinkNode,*LinkList;
   编写算法,从有序表A中删除所有和有序表B中元素相同的结点。

选项

答案参考答案一: void f34(LinkList ha,LinkList hb) { //hb和hb分剐为存放A和B有序链表的头指针 LinkList p,q,r; p=ha; q=hb—>next; while(p—>next&&q){ if(p—>next—>data<q->data) p=p—>next; else{ if(p—>next—>data==q—>data){ r=p—>next; p—>next=r—>next; free(r); } //从A表删除相同的元素结点 q=q—>next; } } } 参考答案二: void f34(LinkList ha,LinkList hb) { //hb和hb分别为存放A和B有序链表的头指针 LinkList p,q,r; r=ha;p=ha—>next; q=hb—>next; while(p&&q){ if(p—>data<q—>data){ r=p;p=p->next; }else{ if(p—>data==q—>data){ r—>next=p—>next; free(p); p=r—>next; } //从A表删除相同的元素结点 q=q—>next } } }

解析
转载请注明原文地址:https://kaotiyun.com/show/AfAx777K
本试题收录于: 数据结构题库理工类分类
0

最新回复(0)