遍历链。
- #include
- #include
- struct node
- {
- int data;
- struct node* next;
- };
- int main()
- {
- struct node* head, * p,* q, * t;
- int i, n, a;
- scanf("%d", &n);
- head = NULL;//头指针初始为空
- for (i = 1; i <= n; i++)//循环读入n个数
- {
- scanf("%d", &a);
- //动态申请一个空间,用来存放一个结点,并用临时指针p指向这个结点
- p = (struct node*)malloc(sizeof(struct node));
- p->data = a;//将数据储存到当前结点的data域中
- p->next = NULL;//设置当前结点的后继指针指向空,也就是当前结点的下一个结点为空
- if (head == NULL)
- {
- q = head = p;//如果这是第一个创建的结点,则将头指针指向这个结点
- }
- else
- {
- q->next = p;//如果不是第一个创建的结点,则将上一个结点的后继指针指向当前结点
- q = p;//指针q也指向当前结点
- }
- }
- t = head;//从链表头部开始遍历
- while (t != NULL)//当没有到达链表尾部的时候循环
- {
- printf("%d ", t->data);
- t = t->next;//继续下一个结点
- }
- getchar();
- getchar();
- return 0;
- }