基本信息
源码名称:c++ 单链表(入门级)
源码大小:2.64KB
文件格式:.cpp
开发语言:C/C++
更新时间:2020-09-12
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
//2020年9月9日 #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typedef char ElemType; //存储结构描述 typedef struct Node { ElemType data; struct Node* next; }Node,*LinkList; //初始化单链表 InitList(LinkList *L) { *L=(LinkList)malloc(sizeof(Node)); //建立头结点 (*L)->next=NULL; //建立空的单链表L } //头插法建立单链表 void CreatFromHead(LinkList L) { Node *s; int flag=1; char c; while(flag) { c=getchar(); if(c!='$') { s=(Node*)malloc(sizeof(Node)); s->data=c; s->next=L->next; L->next=s; } else flag=0; } } //尾插法建立单链表 void CreatFromTail(LinkList L) { printf("尾插法建立单链表,请输入字符:"); Node*s,*r; char c; r=L; int flag=1; while(flag) { c=getchar(); if(c!='$') { s=(Node*)malloc(sizeof(Node)); s->data=c; r->next=s; r=s; } else { flag=0; r->next=NULL; } } } //输出单链表 void DispList(LinkList L) { LinkList p=L->next; while(p!=NULL) { printf("%c",p->data); p=p->next; } } //按序号查找 Node* Get(LinkList L,int i) { int j; Node *p; if(i<=0) return(NULL); p=L;j=0; while((p->next!=NULL)&&(j<i)) { p=p->next; j ; } if(i==j) return p; else return(NULL); } //按值查找 Node* Locate(LinkList L,ElemType key) { Node *p; p=L->next; while(p!=NULL) if(p->data!=key) p=p->next; else break; return p; } //求单链表长度 int ListLength(LinkList L) { int j; Node *p; p=L->next; j=0; while(p!=NULL) { p=p->next; j ; } return j; } //单链表插入 int InsList(LinkList L,int i,ElemType e) { Node *pre,*s; int k; if(i<=0) return ERROR; pre=L; k=0; while(pre!=NULL&&k<i-1) { pre=pre->next; k=k 1; }//查找i-1个节点 if(pre==NULL) { printf("插入位置不合理"); return ERROR; } s=(Node*)malloc(sizeof(Node)); s->data=e; s->next=pre->next; pre->next=s; return OK; } //单链表合并 LinkList merge(LinkList LA,LinkList LB) { Node *pa,*pb; LinkList LC; pa=LA->next; pb=LB->next; LC=LA; LC->next=NULL; r=LC; while(pa!=NULL&&pb!=NULL) { if(pa->data=pb->data) {r->next=pa;r=pa;pa=pa->next;} else {r-next=pb;r=pb;pb=pb->next;} } if(pa) r->next=pa; else r->next=pb; free(LB); return LC; } void main () { LinkList L,M; InitList(&L); // InitList(&M); CreatFromHead(L); // CreatFromTail(M); DispList(L); // DispList(M); Get(L,2); // Locate(M,b); } //https://blog.csdn.net/qq_41563828/article/details/84779576