#include "stdafx.h"
#include "atlstr.h"
#include<iostream>
#include<string>
using namespace std;
typedef int ElemType;
typedef struct Node{
ElemType data;
struct Node *link;
}LNode,*LinkList; /*定义一个线性链表类型*/
void DeleteSameNode(LinkList list)
{
LinkList p,q,r;
int flag=0;
p=list->link; /*从链表的第2个链结点开始寻找多余结点*/
r=list;
while(p!=NULL){
q=list; /*每次从链表的第1个链结点开始寻找多余结点*/
while(q!=p)
if(q->data==p->data){ /*p所指结点为多余结点*/
r->link=p->link; /*删除p所指结点*/
free(p);
flag=1;
break;}
else
q=q->link;
if(flag){
p=r->link;
flag=0;
}
else{
r=p;
p=p->link; /*准备判断下一个结点是否为多余结点*/
}
}
}
用main函数调用上面的函数