数据结构实验之链表七:单链表中重复元素的删除
来源:互联网 发布:windows xp原装正版iso 编辑:程序博客网 时间:2024/05/17 08:07
题目描述
输入
第二行输入n个整数。
输出
第二行输出按照逆位序所建立的初始链表;
第三行输出删除重复元素后的单链表元素个数;
第四行输出删除重复元素后的单链表。
示例输入
1021 30 14 55 32 63 11 30 55 30
示例输出
1030 55 30 11 63 32 55 14 30 21730 55 11 63 32 14 21
注意:
对
p=head->next;
q=p->next;
while(p->next!=NULL)
{ t=p;
while(q!=NULL)
{
if(p->date==q->date)
{
q=q->next;
t->next=q;
n--;
}
else
{
q=q->next;
t=t->next;
}
}
p=p->next;
q=p->next;
}
printf("%d\n",n);
//***************************//
错
p=head->next;
q=p->next;
while(p->next!=NULL)
{ t=p;
while(q!=NULL)
{
if(t->date==q->date)
{
q=q->next;
t->next=q;
n--;
}
else
{
q=q->next;
t=t->next;
}
}
p=p->next;
q=p->next;
}
printf("%d\n",n);
//**************************//
判断时为两个重叠的while循环,而在判断时应保证总链元素的值在第二重循环里的恒定,故引入指针t,而重复元素不一定紧跟着上一元素而是存在于整个链表中,故在内循环里变化得为t,而进行判断的为p.外循环里再让p进行变化。来源
示例程序#include <stdio.h>#include <stdlib.h>typedef struct nod{ int date; struct nod *next;}*dnp,np;int main(){ dnp head,p,q,t; int n,i; head=(dnp)malloc(sizeof(np)); head->next=NULL; scanf("%d",&n); for(i=0; i<n; i++) { p=(dnp)malloc(sizeof(np)); scanf("%d",&p->date); p->next=head->next; head->next=p; } printf("%d\n",i); p=head->next; while(p!=NULL) { printf("%d",p->date); if(p->next!=NULL) printf(" "); p=p->next; } printf("\n"); p=head->next; while(p->next!=NULL) { q=p->next; t=p; while(q!=NULL) { if(p->date==q->date) { q=q->next; t->next=q; n--; } else { q=q->next; t=t->next; } } p=p->next; } printf("%d\n",n);//**************************// p=head->next; while(p!=NULL) { printf("%d",p->date); if(p->next!=NULL) printf(" "); p=p->next; } return 0;}
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- SDUToj2122数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- javase的复习-------12
- 二叉树的映象
- android 大牛:
- Linux(Ubuntu)中三种更改环境变量的方法
- Linux常用命令整理
- 数据结构实验之链表七:单链表中重复元素的删除
- android 4.2.2 編譯
- iOS开发笔记之八——设计模式之委托机制
- 2014新生暑假个人排位赛07 A.暑假作业题
- leetCode Best Time to Buy and Sell Stock II解题分享
- POJ 1321 棋盘问题(基础题)
- LeetCode-Convert Sorted Array to Binary Search Tree
- 机房收费系统—《视图》
- memcache的一致性hash算法使用