标签: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