今天把数据结构和算法讲完了。总体感觉还行,可能是没有深入学习,所以要买本书来看看。
今天晚上只做了一条题目,把他贴出来。
1.创建两个学生链表,含有姓名、年龄的信息,一个链表存放男生,一个链表存放女生
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
char name[20];
int age;
int num;
struct node *next;
};
typedef struct node Node;
typedef struct node *Link;
void create_link(Link *head)
{
*head = NULL;
}
create_node(Link *new_node)
{
*new_node = (Link)malloc(sizeof(Node));
if(*new_node == NULL)
{
printf("malloc error!\n");
return;
}
}
void insert_node_tail(Link *head,Link new_node)
{
Link p;
p = *head;
if(*head == NULL)
{
*head = new_node;
new_node->next = NULL;
}
else
{
while(p->next != NULL)
{
p = p->next;
}
p->next = new_node;
new_node->next = NULL;
}
}
void display_link(Link head)
{
Link p;
p = head;
int i;
if(head == NULL)
{
printf("Link is empty!\n");
return;
}
else
{
while(p != NULL)
{
printf("%d Name:%s Age:%d\n",p->num,p->name,p->age);
printf("********************************************\n");
p = p->next;
}
}
}
void release_link(Link *head)
{
Link p;
p = *head;
while(*head != NULL)
{
*head = (*head)->next;
free(p);
p = *head;
}
}
int main()
{
Link head1 = NULL;
Link head2 = NULL;
Link new_node = NULL;
create_link(&head1);
create_link(&head2);
int i;
int boy_num;
int girl_num;
Link p;
printf("Please input boy number:");
scanf("%d",&boy_num);
for(i = 0;i < boy_num;i++)
{
create_node(&new_node);
insert_node_tail(&head1,new_node);
new_node->num = i+1;
}
printf("Please input girl number:");
scanf("%d",&girl_num);
for(i = 0;i < girl_num;i++)
{
create_node(&new_node);
insert_node_tail(&head2,new_node);
new_node->num = i+1;
}
p = head1;
for(i = 0;i < boy_num;i++)
{
printf("Input boy's name:");
scanf("%s",&p->name);
printf("Input boy's age:");
scanf("%d",&p->age);
p = p->next;
}
p = head2;
for(i = 0;i < girl_num;i++)
{
printf("Input girl's name:");
scanf("%s",&p->name);
printf("Input girl's age:");
scanf("%d",&p->age);
p = p->next;
}
printf("Boy's and Girl's information:\n");
printf("********************************************\n");
display_link(head1);
display_link(head2);
release_link(&head1);
release_link(&head2);
display_link(head1);
display_link(head2);
return 0;
}
结果展示
Please input boy number:3
Please input girl number:2
Input boy’s name:qq
Input boy’s age:12
Input boy’s name:ww
Input boy’s age:11
Input boy’s name:ee
Input boy’s age:12
Input girl’s name:rr
Input girl’s age:12
Input girl’s name:tt
Input girl’s age:13
Boy’s and Girl’s information:
/********************************************
1 Name:qq Age:12
/********************************************
2 Name:ww Age:11
/********************************************
3 Name:ee Age:12
/********************************************
1 Name:rr Age:12
/********************************************
2 Name:tt Age:13
/********************************************
Link is empty!
Link is empty!