1、建立并输出两个递增单链表La和Lb。 A、 首先要定义单链表的数据结构 B、 编写一个函数使用“头插法”或“尾插法”创建一个单链表,例如: LinkList CreateList(LinkList L,int n){ ……… } C、 编写主函数(main) ,调用函数CreateList(La,n), CreateList(Lb,n)分别录入单链表La和Lb,注意手动录入时要保证La和Lb是递增的(如果是头插法,那么录入时要按从大到小录入,如:5 4 3 2 1) D、 编写一个函数能够显示一个单链表中各结点的值,设La和Lb如下: La:1 3 7 8 15 20 Lb:2 4 8 15 17 24 90
时间: 2023-05-21 18:04:40 浏览: 164
数据结构 两个有序线性表的归并算法 西南交通大学
A、首先要定义单链表的数据结构:
typedef struct ListNode{
int val;
struct ListNode *next;
}ListNode, *LinkList;
B、编写一个函数使用“头插法”或“尾插法”创建一个单链表,例如:
LinkList CreateList(LinkList L, int n){
ListNode *p;
L = (LinkList)malloc(sizeof(ListNode));
L->next = NULL;
int i = 0;
while(i < n){
p = (ListNode*)malloc(sizeof(ListNode));
scanf("%d", &p->val);
p->next = L->next;
L->next = p;
i++;
}
return L;
}
C、编写主函数(main),调用函数CreateList(La, n),CreateList(Lb, n)分别录入单链表La和Lb,注意手动录入时要保证La和Lb是递增的(如果是头插法,那么录入时要按从大到小录入,如:5 4 3 2 1):
int main(){
int n;
LinkList La, Lb;
scanf("%d", &n);
La = CreateList(La, n);
scanf("%d", &n);
Lb = CreateList(Lb, n);
return 0;
}
D、编写一个函数能够显示一个单链表中各结点的值,设La和Lb如下:
La:1 3 7 8 15 20
Lb:2 4 8 15 17 24 90
void DisplayList(LinkList L){
ListNode *p = L->next;
while(p){
printf("%d ", p->val);
p = p->next;
}
}
可以通过调用DisplayList(La)和DisplayList(Lb)分别输出链表La和Lb的节点值。
阅读全文