微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要关于我的代码在链表中创建函数和删除函数的帮助吗? C 编程新手

如何解决需要关于我的代码在链表中创建函数和删除函数的帮助吗? C 编程新手

typedef struct LinkedListNode 

{

   void *data;

   struct LinkedListNode *next;

}LinkedListNode;

typedef struct 

{

   LinkedListNode *head;

}LinkedList;


LinkedList *createLinkedList()

{

  LinkedList *ll = (LinkedList *) malloc(sizeof(LinkedList))

  ll->head = NULL;

  return ll;

}

void insertFirst (LinkedList *list,void *data)

{

     Cannot create this function ? 
  
}

void removeFirst(LinkedList *list)

{

     Cannot create this function?

}

解决方法

我会帮助您完成 insertFirst 功能。

void insertFirst(LinkedList *list,void *data)
{
    LinkedListNode *node = NULL;

    node = malloc(sizeof *node); /* allocate a new node */

    if (node == NULL)
    {
        /* handle oom */
    }

    node->data = data; /* save the data */
    node->next = list->head; /* point the next node to head */
    
    list->head = node; /* set head to the node we just created */

    return;
}
,

insertFirstremoveFirst 这两个函数都应该具有返回类型 int,以向函数的用户报告他们的操作是否成功。

例如

int insertFirst ( LinkedList *list,void *data )
{
    LinkedListNode *node = malloc( sizeof( LinkedListNode ) );
    int success = node != NULL;

    if ( success )
    {
        node->data = data;
        node->next = list->head;
        list->head = node;
    }

    return success;
}


int removeFirst( LinkedList *list )
{
    int success = list->head != NULL;

    if ( success )
    {
        LinkedListNode *node = list->head;
        list->head = list->head->next;
        
        free( node->data );
        free( node );
    }

    return success;
}

我假设函数 data 中使用的指针 insertFirst 指向一个动态分配的对象。否则在函数 removeFirst 中您需要删除语句

free( node->data );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?