C:笔记:链表 可变数组
2015-12-21 00:00
253 查看
链表
每个节点是一个结构,结构包括一个值和一个指针。指针指向另外一个结构。
另外使用链表时,再定义一个指向这个链表的结构:
在链表中搜索:
删除:
malloc出来的东西最后都要free
无论做什么,都要考虑边界情况,保证代码运行安全。
每个节点是一个结构,结构包括一个值和一个指针。指针指向另外一个结构。
//定义一个名为struct _node 的结构体,并且typedef命名为为Node,这个结构体里面有一个指向同类型结构的指针。 typedef struct _node{ int value; struct _node *nest; } Node;
另外使用链表时,再定义一个指向这个链表的结构:
typedef struct _list { Node* head; } List;
在链表中搜索:
int isFound = 0; for ( p = list.head; p; p = p->nest ) { if (p->value = number)//number就是要搜索的那个 { isFound = 1; break; } }
删除:
Node *q; for (q = NULL, p = list.head; p; q = p, p = p->next) { if(p->next == number ) { if(q) { q->next = p->next; } else { list.head = p->next; } free(p); break; } }
malloc出来的东西最后都要free
for (p = head; p; p = q) { q = p->next; free(p); }
无论做什么,都要考虑边界情况,保证代码运行安全。