数据结构(c语言)。。。各位帮帮手

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:46:35
1.写出在链式存储条件下,将单链表L1的元素是递增有序,有序表储存在a数组中. InsertOderList(&a,x)

2.设单链表A=(a1.a2.a3~~~an)和B=(b1.b2.b3.~~bm)都是有序表(按值从小到大排列),用类C语言编写A与B合并为链表C的算法,C表也要求从小到大.其中n和m不已知条件,c表利用A表和B表的结点空间.

3.已知单链表L是和指向L表中的一个结点的指针R,从R将L表分成两个单链表,要求R结点作为一个链表的首结点.

单链表(综合练习)

#include <stdio.h>
#include <malloc.h>
#define DATATYPE2 char

typedef struct node //结构体定义一个单链表LINKLIST
{
DATATYPE2 data;
struct node *next;
}LINKLIST;
int locate(LINKLIST *a,char x)
/*检查元素x是否在a表中*/
{LINKLIST *la;

la = a->next;
while(la !=NULL)
if(la->data == x) return 1;
else la = la->next;
return 0;
}

insert(LINKLIST *a,char x)
/*将x元素加入a表中*/
{LINKLIST *p;

p = (LINKLIST *) malloc(sizeof(LINKLIST));
p->data = x;
p->next = a->next;
a->next = p;
}

void unionn(LINKLIST *a1, LINKLIST *b1){
/*两有序表交集*/
LINKLIST *lb;

lb = b1->next;
while(lb != NULL)
{ if (!locate(a1,lb->data)) /*如果b1表中的一个元素不在a1表中*/
insert(a1,lb->data); /*则将b1表中的该元素加入a1表中*/
lb = lb->next;}
}

void unite(LINKLIST *a, LINKLIST *b