/*
题目:在一个递增有序的线性表中,有相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中元素不再有重复的元素,例如(7,10,10,21,30,42,42,51,70)将变为(7,10,21,30,42,51,70)。
出自:王道p38.12
*/
//思路:由于链表为有序表,所以只需从头至尾遍历链表是查看工作指针后两个是否值相等,相等就越过工作指针的下一个,判断第二个和第三个。。。以此类推,直到表尾。注意,工作指针所指向的结点,是在之前判断了的,因为是带头结点的链表,所以一开始工作指针指向头结点,而头结点是不需要判断的。
//宏定义
#define ElemType int
//单链表定义
typedef struct LNode{
ElemType val;
struct LNode*next;
}*LinkList,LNode;
[注] 上述宏定义和结构体定义是答题时要写的答案,并不是代码实现时的定义,代码实现稍有不同,感兴趣可去“help.h”中查看。
//实现函数
void WD_38_12(LinkList_n L){
LNode_n*p=L,*temp;
while(p->next){
w