首页 > 解决方案 > 双向链表中的结构内部结构

问题描述

我想创建一个双向链表。在节点中,这些数据必须在:姓名、姓氏、部门、年级。我的结构是,

typedef struct DATA{
    long Number;
    char name[30],lastname[30],department[50];
    int grade;
}DATA;

struct DATA* data;
typedef struct node{
    DATA data;
    struct node* next;
    struct node* prev;
}node;

struct node* start=NULL;

我试图达到

struct node* CreateNode(int number, char name1[30], char lastname1[30], char department1[50])
{
    struct node* newNode = (struct node*)malloc(sizeof(struct node));
    data->Number=number;
    data->name[30]=name1[30];
    data->lastname[30]=lastname1[30];
    data->department[50]=department1[50];
    newNode->next=NULL;
    newNode->prev=NULL;
    return newNode;
}

void SonaEkleme(int number, char name1[30], char lastname1[30], char department1[50])
{
    struct node* addData = CreateNode(number, name1, lastname1, department1);

    if (start==NULL) 
    {
        start=addData;
    }
    else
    {
        struct node* temp=start;
        while(temp->next!=NULL)
        {
            temp=temp->next;
         }
         addData->prev=temp;
         temp->next=addData;
    } 
}

但它不能添加新节点。如何在双向链表节点中再添加一个数据?

标签: cstructlinked-list

解决方案


我认为您将 temp 的内容与 temp 本身混为一谈!

*temp=temp->next;

推荐阅读