标签:style blog color sp for on 2014 log bs
1,单链表储存结构:
typedef int ElemType;
typedef struct node
{
ElemType data;
node *next ;
}LNode, *LinkList;
LinkList Creat_tail_LinkList() //尾插法:
{
LinkList L,p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
int n,x;
scanf("%d",&n);
for(int i=n;i>0;i--)
{
scanf("%d",&x);
p=(LinkList)malloc(sizeof(LNode));
p->data=x;
p->next=L->next;
L->next=p;
}
return L;
}
LinkList Creat_top_LinkList() //头插法
{
LinkList L,p,q;
L=(LinkList)malloc(sizeof(LNode));
q=L;
int n,x;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&x);
p->data=x;
q->next=p;
q=p;
}
q->next=NULL;
return L;
}
LinkList Locate_anw_LinkList(LinkList L,ElemType e) //按值查找
{
scanf("%d",&e);
LinkList p=L->next;
while(p&&p->data!=e)
p=p->next;
return p;
}
int Locate_cur_LinkList(LinkList L,ElemType cur,ElemType &tot) //按位置查找并将元素输出;
{
scanf("%d",&cur);
int j;
LinkList p=L->next;
j=1;
while(p&&j<cur)
{
p=p->next;
j++;
}
if(!p||j>cur) return 0;
tot=p->data;
return 1;
}
void Insert_LinkList(LinkList &L,ElemType cur,ElemType hh) //在指定位置插入元素
{
LinkList p,s;
p=L;
int j=0;
while(p&&j<cur-1) //注意点:&&
{
p=p->next;
j++;
}
if(!p||j>cur-1) return ;
s=(LinkList)malloc(sizeof(LNode));
s->data=hh;
s->next=p->next;
p->next=s;
}
int Dele_LinkList(LinkList &L,ElemType cur,ElemType &ss) //在指定位置删除元素
{
LinkList p;
p=L;
int j=0;
while(p->next&&j<cur-1)
{
p=p->next;
j++;
}
if(!p->next||j>cur-1) return 0;
ss=p->next->data;
p->next=p->next->next;
return 1;
}
void Printf_LinkList(LinkList L) //输出单链表中的元素
{
LinkList p;
p=L->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void Merge_LinkList(LinkList &La,LinkList &Lb,LinkList &Lc) //合并两个递增单链表
{
//LNode *pa,*pb,*pc;
LinkList pa,pb,pc;
pa=La->next;
pb=Lb->next;
Lc=pc=La;
while(pa&&pb)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(Lb);
}
标签:style blog color sp for on 2014 log bs
原文地址:http://blog.csdn.net/u013514722/article/details/40921513