从列表C中删除元素

蒂亚戈·桑托斯(Tiago Santos)

我已经完成了这段代码,从列表中删除了一个元素:

清单结构:

typedef struct list_t{
  struct node_t *head;
  int size;
};

typedef struct node_t{
  struct entry_t *element;//Each entry has a key
  struct node_t *next;
}node_t;

删除方法:

int list_remove(struct list_t *list, char *key){
  node_t *no = list->head;
  struct list_t *lista = list_create();
  int i;
  for(i=0;i<list->size;i++){
    if(strcmp(no->element->key, key)==0)
      no=no->next;
    else {
      list_add(lista,no->element);
      no=no->next;
    }
  }
}

列表中的每个元素都有一个键。

我的想法是用给定列表(列表)中的元素(要删除的元素)创建一个新列表(列表)。

我现在的问题是:

  1. 如何从旧列表(列表)中删除所有元素?
  2. 如何将新列表(列表)中的元素添加到旧列表(列表)中?

谢谢。

尼辛·巴斯卡(Nithin Bhaskar)

这是就地删除链表中节点的标准方法。希望这对您有用:

int list_remove(struct list_t *list, char *key) {
  node_t *node = list->head;
  node_t *prev = NULL;   //to keep track of the previous node
  int i;
  for(i=0; i<list->size; i++) {
    if(strcmp(node->element->key, key)==0) {
      if(node == list->head) {   //if 1st node has to be deleted
        if(list->size == 1)    //if there's only one node in list
          list->head = NULL;
        else
          list->head = node->next;
        list->size--;
        return 0;
      }
      prev->next = node->next;
      return 0;
    } else {
      prev = node;
      node=node->next;
    }
  }
  return -1;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

从嵌套列表C#中删除元素

来自分类Dev

使用递归C ++从列表中删除元素

来自分类Dev

无法删除 C++ 中的列表元素

来自分类Dev

从C#中的列表内的列表中删除元素。

来自分类Dev

删除列表中的元素

来自分类Dev

我需要从C中的列表中删除相同的元素

来自分类Dev

从 C++ 中的列表中删除元素的问题

来自分类Dev

如何在C++中删除列表中的某些元素

来自分类Dev

VUEJS从列表中删除元素?

来自分类Dev

从列表中删除当前元素

来自分类Dev

如何从列表中删除元素?

来自分类Dev

从日期列表中删除元素

来自分类Dev

从列表元素中删除项目?

来自分类Dev

比较列表中的元素并删除

来自分类Dev

Scala从列表中删除元素

来自分类Dev

Prolog从列表中删除元素

来自分类Dev

删除Javascript中的元素列表

来自分类Dev

从链接列表中删除元素

来自分类Dev

从链接列表中删除元素

来自分类Dev

从链接列表中删除元素

来自分类Dev

从列表中删除重复的元素

来自分类Dev

从元组列表中删除元素

来自分类Dev

从日期列表中删除元素

来自分类Dev

Python。列表中的<删除元素>

来自分类Dev

从列表中动态删除元素

来自分类Dev

从数组中删除元素。指数。C#。列表<double>

来自分类Dev

双链列表中的C ++删除元素功能