一、问题描述
建立一个单链表,并要求字母不重复地存入链表。
二、思路分析
思路很简单,在添加元素的时候判断前面的结点是否已经存在该值,如果存在则直接跳过即可。
三、代码实现
#include<stdio.h>
typedef struct Node{
char data;
struct Node *next;
}Node,*Link;
void initLink(Link &link){
link = new Node;
link->next = NULL;
}
void addElement(Link &link,char data){
Link temp = link;
while(temp->next != NULL){
temp = temp->next;
if(temp->data == data){
return;
}
}
if(temp == NULL){
return;
}
Link newNode = new Node;
newNode->data = data;
newNode->next = NULL;
temp->next = newNode;
return;
}
void print(Link link){
Link temp = link->next;
while(temp!=NULL){
printf("%c\t",temp->data);
temp = temp->next;
}
}
int main(){
Link link;
initLink(link);
addElement(link,'a');
addElement(link,'a');
addElement(link,'b');
addElement(link,'a');
addElement(link,'b');
addElement(link,'c');
addElement(link,'c');
print(link);
}