链表删除重复元素
答:这是一个简单的单链表操作题。核心算法:用两个指针p,pre,其中pre指向p的直接前驱结点。比较p->data和pre->data是否相等,如果相等将p继续只想下一个结点(即:p=p->next),直到不相等为止。此时就要更新pre和p的值,删除pre和p之间的结点(即:pre->next=p;),接着让p指向pre的下一个结点(...
答:void deleteSameNode(List &srclist) //删除相似的结点 { if (srclist.len <= 1) //如果结点只有一个或零个肯定不重复,无需处理 return;int len = srclist.len;int *nHash = new int[2 * len]; //Hash表,设定为链表长的2倍,这样再散列时无需循环 for(int i = 0; i < ...
答:单链表 。template void Delete(){ vector Backup;//暂存所有删除data ListNode q,*p = head->next;while(!p){ if(p->data == p->next->data){ Backup.push_back(p->data);q = p->next;p = p->next->next;delete q;//删除重复的第二个结点 } else { p = p->next;} } ret...
答:void Simplification(List *head) { // 去除相同的集合元素List *p,*q,*s;p = head->next;q = p->next;while(q != head) {if(p->num == q->num) {p->next = q->next;s = q;q = q->next;free(s);}else {p = p->next;q = q->next;}}} ...
答:这样试试?
答:首先,用一个指针p指向单链表中第一个表结点,然后用另一个指针q查找链表中其余结点元素,由于是单链表,故结束条件为p= =NULL,同时让指针s指向q所指结点的前趋结点,当查找到结点具有q->data= =p->data时删除q所指的结点,然后再修改q,直到q为空;然后使p指针后移(即p=p->next),重复进行...
答:1、通过循环进行删除 public static void removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j);}}} System.out.println(...
答:void del(dd *head)/* 这个是那个删除链表重复元素的函数*/ { dd *p,*q,*r;/* *p用于列举链表的每个节点*/ p = head;if(p == NULL){ printf("wrong !");} while(p!=NULL){ q = p->next;r = p;while(q != NULL){ if(q->num == p->num)/*用q来完成查找*/ { r->...
答:void Treserve( Sqlist &L) /*比较链表中的每个数字,重复就删除*/ { Node *p;Node *s;s=p=L->next;while(p->next!=NULL){ p=s;p=p->next;if(s->data==p->data){ if(p->next==NULL)s->next=NULL;else s->next=p->next;} else { s=p;} } } main(){ Sqlist ...
答:写程序把这个二级链表称一级单链表。7.单链表交换任意两个元素(不包括表头)8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?9.判断两个单链表是否相交 10.两个单链表相交,计算相交点 11.用链表模拟大整数加法运算 12.单链表排序 13.删除单链表中重复的元素 ...
网友评论:
支媚13827237871:
数据结构删除链表中的重复元素 -
46159酆云
: void DeleteSameNode(LinkList &h) { LinkList p, q, r for(p=h->next;p!=NULL;p=p->next)for(r=p,q=p->next;q!=NULL;q=q->next) if(q->data==p->data) {r->next=q->next;free(q);q=r;}else r=r->next;}
支媚13827237871:
怎么删除一个链表里的相同的多余元素 -
46159酆云
: void Delete(Node *pHead){ Node *p1;Node *p2; Node *p3;p1=pHead; p2=p1->next; while(p2!=NULL){ if(p1->x==p2->x){ p3=p2->next; p1->next=p3; delete p2; } p1=p1->next; p2=p2->next;
支媚13827237871:
如何从链表中删除重复数据 -
46159酆云
: 假设头结点为head: for(Node *p=head->next; p!=NULL; p=p->next){ Node *q=p; while(q->next!=NULL){ if(q->next->data==p->data){ Node *temp=q->next; q->next=q->next->next; delete(temp); } q=q->next; } }
支媚13827237871:
c语言链表 删除相同的元素值
46159酆云
: 你只是对相邻的元素进行比较,所以只能删除相邻且相同的元素.如果按照你的思想,则要先经排序后的链表,再执行Puge(L)才能删除链表中所有的相同的元素. 以下是我写的一个链表排序(冒泡法): /*单链表排序(mark=1,降序;mark=0...
支媚13827237871:
c++中链表删除相同元素,急! -
46159酆云
: #include <iostream> using namespace std; struct TLink { int data; struct TLink * next; };/*end struct TLink*/ class CLink { private: TLink * first; void append(int); TLink * locate(int, TLink *, TLink *); public: CLink(int [], int); ~CLink(); void print(void); void ...
支媚13827237871:
单链表,把相同元素删除 -
46159酆云
: 用双重循环:设两个指针 遍历链表 比较两个指针当前所指结点数据域的值找到相等的删除就可以了
支媚13827237871:
设计一个算法,实现从单链表中删除重复元素,并使剩余元素间的相对次序保持不变.采用链式存储结构实现.只写出主要算法即可. -
46159酆云
:[答案] 如果是带头指针的话: void Derepeat(LinkList &L) { LinkList p1,p2,p3; p1=p3=L->next; p2=L->next->next; while(p1->next) { while(p2->next) { if(p2->data==p1->data) { p3->next=p2->next; p2=p2->next; } else { p3=p3->next; p2=p2->next; } } p1=p1->next; ...
支媚13827237871:
试设计实现在单链表中删去值相同的多余节点的算法 -
46159酆云
: #include<stdio.h> #include<stdlib.h> #include<time.h> ///////////////////////定义结点数据类型等////////// #define N 15 typedef int DataType; typedef struct node {DataType data;struct node *next; } NODE, *PNODE; ///////////////////////使用到的函数的声明/////////...
支媚13827237871:
线性表中单链表怎么删除有重复元素的结点 -
46159酆云
: 希望能帮到你,我这学期正好学了单链表.template void Delete() { vector Backup; //暂存所有删除data ListNode *q,*p = head->next; while(!p) { if(p->data == p->next->data) { Backup.push_back(p->data); q = p->next; p = p->next->next;delete q; //删除重复的第二个结点 } else { p = p->next; } } return; }
支媚13827237871:
C语言删除链表中相同的元素 代码怎么写 -
46159酆云
: 比较困难,你可以试着复制这个链表,然后用一个链表里的元素去与另一个链表的全部元素做比较,把除自身以外相同的元素删除.