在C语言中学到有用的使用方法之链表操作
头插法:
#include <stdio.h>
#include <stdlib.h>
typedef struct linkNode
{
int num;
struct linkNode *node;
}linkNode;
linkNode firstNode;
void addNode(linkNode *n)
{
// printf("n->num = %d\n", n->num);
n->node = firstNode.node;
// printf("n->num = %d\n", n->num);
firstNode.node = n;
}
int main(int argc, char *argv[])
{
linkNode *node1 = (linkNode *)malloc(sizeof(linkNode));
node1->num = 1;
linkNode *node2 = (linkNode *)malloc(sizeof(linkNode));
node2->num = 2;
// printf("before addNode\n");
addNode(node1);
addNode(node2);
// printf("addNode\n");
for (linkNode *fi = firstNode.node; fi != NULL; )
// linkNode *fi = firstNode.node;
// while (fi != NULL)
{
printf("num = %d\n", fi->num);
fi = fi->node;
}
return 0;
}
结构中可以用来存放函数指针,有点类似于C++中的类的用法,在底层编程时,当有数据来时添加节点,相当于添加了一个类的对象成员,和C++中的类使用类似。