2014-03-12 69 views
0

我已经创建了我的节点(汽车)所需的数据。搜索特定节点的链表

struct data { 
    char carReg[10]; 
    char make[20], model[20], colour[20]; 
    int numPrevOwners; 
    bool reserved; 
    float reserveAmount; 
}; 

我也为节点创建了模板,并声明了全局变量。

struct node { 
struct data *element; 
struct node *next; 
}; 


struct node *front = NULL; 
struct node *last = NULL; 

在我viewSpecific()方法,我希望用户在一个独特的carReg输入,然后它会在其中找到,这是存储在节点和显示。

这是我到目前为止有:

void viewSpecific() { 
char result[10]; 

printf("Please enter the registration of the car yiew wish to view."); 
scanf("%s", &result); 

struct node *current, *previous; 
bool notFound = true; 

printf("\n"); 
if (isEmpty()) 
    printf("Error - there are no nodes in the list\n"); 
else { 

我不太清楚在此之后该怎么做。

+0

请阅读标记说明:'[node.js]'是基于事件的异步I/O框架,使用Google的V8 JavaScript引擎。 – NPE

+0

'[方法]'也不会让我特别合适。 – NPE

+0

@NPE道歉,这是一个推荐的标签,所以我只是用它。 – jf95

回答

1

检查用户输入的carReg是否与当前节点的carReg相同。 如果它没有前进到下一个节点。 如果您到达列表的末尾,这是因为找不到carReg。

/* basically, something like */ 
current = front; 
while (current != NULL) { 
    if (strcmp(current->element->carReg, userCarReg) == 0) /* found */ break; 
    current = current->next; 
} 
if (current == NULL) { 
    printf("carReg not found\n"); 
} else { 
    printf("carReg: %s\n", current->element->carReg); 
    printf("make: %s\n", current->element->make); 
    printf("previous owners: %d\n", current->element->numPrevOwners); 
} 
+0

我在哪里可以将打印语句显示在汽车中的所有变量?在while循环后发现它? – jf95

+0

是的,那是对的。回答编辑。 – pmg

+0

那么,像这样? printf(“\ n注册号:%s”,current-> element-> carReg); current = current-> next; – jf95