4大链表问题集合

来源:百度知道 编辑:UC知道 时间:2024/06/23 06:54:13
1.有结构体类型定义,
struct student
{ long num; /*学号*/
int score; /*成绩*/
struct student *next; /*指针*/
};
程序首先完成创建一个链表,要求补充完成实现将链表中各结点变成倒序排列的函数。
struct student *reverse(struct student *head)
{
_______________________________
}

2.有结构体类型定义,
struct student
{ long num; /*学号*/
int score; /*成绩*/
struct student *next; /*指针*/
};
程序首先完成创建一个链表,要求补充完成实现将链表中各结点按学好由小到大排序的函数。
struct student *sort(struct student *head)
{
_______________________________
}

3.有结构体类型定义,
struct student
{ long num; /*学号*/
int score; /*成绩*/
struct student *next; /*指针*/
};
程序首先完成创建两链表,要求补充完成将第二个链表合并到第一个链表末尾的函数。
struct student *merge(struct student *head, struct student *head2)
{
_______________________________
}

4.struct student
{ long num; /*学号*/
int score; /*成绩*/
struct student *next; /*指针*/
};

1.
struct student *reverse(struct student *head)
{
if(head->next == null) return head;
reverse(head->next)->next = head;
return head;
}
==============================================

2.
struct student *sort(struct student *head)
{
int swapped;
struct student *step = head;

do {
swapped = 0;
while(step->next->next) {
if(step->next->num > step->next->next->num) {
struct student *temp = step->next;
step->next = step->next->next;
temp->next = step->next->next;
step->next->next = temp;
swapped = 1;
}
step = step->next;
}
step = head;
} while(swapped);

return head;
}
====================================

3.
struct student *merge(struct student *head, struct student *head2)
{
struct student *tail = head;
while((tail = tail->next)->n