将更新节点添加到链接列表中

时间:2015-10-28 20:29:12

标签: c linked-list nodes

我无法弄清楚如何在当前代码中执行更新功能。他不希望我们更改学生证,但希望我们更改GPA以及与当前学生相关的专业。他想要我们 创建一个提示,供用户输入要搜索的学生ID号。还要创建提示以确定用户希望更新哪个字段,然后接受该字段的新输入并更改相应学生的内容。我不想要答案。我只需指向正确的方向。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "stuff.h"
#include "staticll.h"

int compareID(void*, void*);
int compareGPA(void*, void*);
int compareMajor(void*, void*);

void main(void)
{
    FILE *fp;
struct Node  List[15];
int Begin, current, newStuff, oldStuff;
double oldData;
int(*fnPtr)();

fnPtr = compareMajor;


Begin = 0;

struct Student *stu;

for (int x = 0; x < 3; x++)
{
    newStuff = FindSpace(List);

    List[newStuff].nodeData = readData(stdin);

    addNode(Begin, List, newStuff);
}

for (int i = Begin; i != -1; i = List[i].nodeLink)
    fprintf(stdout,"%.2f\n",((Stu*)List[i].nodeData));

for (int i = Begin; i != -1; i = List[i].nodeLink)
    free(List[i].nodeData);
}


int  compareID(void *p1, void *p2)
{
    if (((Stu*)p1)->stuID == ((Stu*)p2)->stuID)
        return 0;
    else
    if ((((Stu*)p1)->stuID < ((Stu*)p2)->stuID))
        return 1;
    else
        return -1;
}

int  compareGPA(void *p1, void *p2)
{
    if (((Stu*)p1)->stuGPA == ((Stu*)p2)->stuGPA)
        return 0;
    else
    if ((((Stu*)p1)->stuGPA < ((Stu*)p2)->stuGPA))
        return 1;
    else
        return -1;
}

int  compareMajor(void *p1, void *p2)
{
    return strcmp(((Stu*)p1)->stuMajor, ((Stu*)p2)->stuMajor);
}

这是我为所需更新功能创建的当前代码。

 #include"Stuff.h"

void updateNode(struct Node List[], int current, int *NewData)
{

        int temp1;

    List[current].nodeLink = List[*NewData].nodeData;
    List[*NewData].nodeLink = NewData;

    printf("enter the student ID number ");





}

0 个答案:

没有答案