题目:创建一个单项链表,各个结点的数据域赋0~b-1的值,并遍历的输出链表中各个结点的数据。
思路:
- 首先在main函数中创建一个头指针,创建一个createlink函数并为数据域赋值,函数的返回值是头指针,再创建一个outlink函数遍历输出各个结点的数据。
- 定义结点类型,结点应由一个整型数据(int data)和一个指向自身的指针变量(struct node *next)组成。
- 编写createlink函数
- 编写outlink函数
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}NODE;
NODE *createlink (int a, int b)//a是结点数
{
NODE *h=NULL,*p,*r;
int i;
p=(NODE*)malloc(sizeof(NODE));
h=p;
p->next = NULL;//p指针指向的结点的下一个结点为空
for(i=1;i <= a;i++)
{
r=(NODE*)malloc(sizeof(NODE));
r->data = rand()%b;
r->next = p->next;//将p的下一个结点的位置赋给r的下一个结点
p->next = r;//p指针指向的对象的下一个为r指向的对象
p=p->next; //p指向下一个节点
}
return h;//返回头指针
}
void outlink(NODE *h)
{
NODE *p;
p=p->next;
printf("\n\nTHE LIST :\n\n HEAD");
while(p)
{
printf("->%d",p->data);
p=p->next;
}
printf(""\n)
}
void main()
{
NOED *head;
creatlink(8,22);
outlink(head);
}