#include <stdio.h>
#include <stdlib.h>
struct stu
{
int data;
struct stu *next;
struct stu *last;
};
struct stu *CreatList ()
{
int data;
struct stu *p, *head, *tail;
head = tail = NULL;
scanf("%d", &data);
while(data != 0)
{
p = (struct stu *)malloc(sizeof(struct stu));
p->data = data;
p->next = NULL;
p->last = tail;
if(head == NULL)
{
head = p;
}
else
{
tail->next = p;
}
tail = p;
scanf("%d", &data);
}
return head;
}
void PrintList (struct stu *head)
{
struct stu *p;
if(head == NULL)
{
printf("ERROR!\n");
exit(0);
}
for(p = head; p != NULL; p = p->next)
{
printf("%d\n", p->data);
}
}
struct stu *InsertList (struct stu *head, int num)
{
struct stu *p1, *p2;
if(head == NULL)
{
printf("ERROR!\n");
exit(0);
}
for(p1 = head; p1 != NULL; p1 = p1->next)
{
if(num <= p1->data)
{
p2 = (struct stu *)malloc(sizeof(struct stu));
p2->data = num;
p2->next = p1;
p1->last->next = p2;
p1->last = p2;
break;
}
}
return head;
}
int main ()
{
struct stu *head;
head = CreatList ();
InsertList(head, 6);
PrintList(head);
return 0;
}
双向链表
最新推荐文章于 2018-04-13 14:40:07 发布