【发布时间】:2020-03-16 03:34:20
【问题描述】:
所以,我创建了一个代码,它创建了一个包含 5 个值的链表。我想知道删除这些值的重复项并再次打印没有重复项的链接列表的最佳方法是什么。
#include <stdio.h>
#include <stdlib.h>
/* self-referential structure*/
struct studentID{
int value; //a data member which is an integer
struct studentID *next; //a data member which is a pointer to next node
};
typedef struct studentID STUDENTID; //creating a nickname for struct studentID as STUDENTID
typedef STUDENTID *STUDENTIDPtr; //creating a nickname for STUDENTID as STUDENTIDPtr
//Global variables
STUDENTIDPtr previousPtr; //pointer to previous node in list
STUDENTIDPtr currentPtr; //pointer to current node in list
void printList(STUDENTIDPtr currentPtr){
while (currentPtr != NULL){ //while not the end of the list
printf("%d -> ", currentPtr->value);
currentPtr = currentPtr ->next;
}
}
int main(){
STUDENTIDPtr newPtr1; //creating a pointer to create a new node
STUDENTIDPtr newPtr2; //creating a pointer to create a new node
STUDENTIDPtr newPtr3; //creating a pointer to create a new node
STUDENTIDPtr newPtr4; //creating a pointer to create a new node
STUDENTIDPtr newPtr5; //creating a pointer to create a new node
//creation of the first node
newPtr1 = malloc(sizeof(STUDENTID)); //This is when a node is created
newPtr2 = malloc(sizeof(STUDENTID)); //This is when a node is created
newPtr3 = malloc(sizeof(STUDENTID)); //This is when a node is created
newPtr4 = malloc(sizeof(STUDENTID)); //This is when a node is created
newPtr5 = malloc(sizeof(STUDENTID)); //This is when a node is created
newPtr1 -> value = 4; // assign data in first node
newPtr1 -> next = newPtr2;
newPtr2 -> value = 4; // assign data in first node
newPtr2 -> next = newPtr3;
newPtr3 -> value = 5; // assign data in first node
newPtr3 -> next = newPtr4;
newPtr4 -> value = 2; // assign data in first node
newPtr4 -> next = newPtr5;
newPtr5 -> value = 1; // assign data in first node
newPtr5 -> next = NULL;
currentPtr = newPtr1;
printList(newPtr1);
return 0;
}
使用 if else 并遍历每个链表会很容易还是有更好的方法?
【问题讨论】:
-
不清楚你是指相邻的重复元素还是所有重复的元素。
标签: c algorithm struct linked-list singly-linked-list