程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。

来源:互联网 发布:淘宝知识产权申诉成功 编辑:程序博客网 时间:2024/05/21 09:48
#include <stdio.h>
#include <stdlib.h>


struct node
{
int num;
struct node * next;
};


typedef struct node Node;
typedef struct node * Link;


void creat_link(Link * head)
{
*head = NULL;
}


//malloc函数的判断
void is_malloc_ok(Link new_node)
{
if(new_node == NULL)
{
printf("Error!\n");
exit(-1);
}
}


//创建新节点
void creat_newnode(Link * new_node)
{
*new_node = (Link)malloc(sizeof(Node));
is_malloc_ok(*new_node);
}


//尾插
void insert_node_tail(Link * head,Link new_node)
{
Link temp;
temp = *head;

if(*head == NULL)
{
new_node -> next = *head;
*head = new_node;
}
else
{
while(temp -> next != NULL)
{
temp = temp -> next;
}
temp -> next = new_node;
new_node -> next = NULL;
}
}


//显示链表
void display_node(Link head)
{
Link temp;
temp = head;
while(temp != NULL)
{
        printf("%3d",temp -> num);
temp = temp -> next;
}
printf("\n");
}


int main()
{
Link head = NULL;
Link new_node = NULL;
int a[9] = {1,5,8,5,0,6,9,1,8};
int i;


creat_link(&head);


for(i = 0;i < 9;i++)
{
creat_newnode(&new_node);
new_node -> num = a[i];
insert_node_tail(&head,new_node);
}


display_node(head);


    return 0;
}
0 0
原创粉丝点击