线性表链式存储结构下基本操作的实现(初始化、赋值、取值、插入、删除、归并等)
来源:互联网 发布:访问js对象的属性 编辑:程序博客网 时间:2024/05/19 07:09
数据结构书上都是伪码,不能照抄。要做适当的改变
#include <stdio.h>#include <string.h>#include <stdlib.h>#define len sizeof(struct list)struct list{int data;struct list *next;};struct list *la,*lb;//初始化链表 struct list * InitList(){struct list *head;head=(struct list *)malloc(len);return head;}//为链表赋值 struct list * ListInsert(struct list* &la){struct list *p1,*head;int n;head=la;printf("请输入数据的个数\n");scanf("%d",&n);printf("请输入数据,用空格分开\n");while(n--){p1=(struct list*)malloc(len);scanf("%d",&p1->data);p1->next=NULL;la->next=p1;la=p1;}return head;}//向链表中取元素 void GetElem(struct list * la){printf("请输入你要取得值的位置\n");int n;scanf("%d",&n);while(la->next&&n){n--;la=la->next;}if(n)printf("输入的位置超出链表范围\n");elseprintf("所处位置的元素为%d\n",la->data);}//向链表指定位置插入元素 void InsertElem(struct list * la){struct list* pos;printf("请输入你要插入的位置和元素\n");int n,x;scanf("%d %d",&n,&x);while(la->next&&n){n--;pos=la;la=la->next;}if(n)printf("输入的位置超出链表范围\n");else{struct list * p1;p1=(struct list*)malloc(len);p1->data=x;p1->next=pos->next;pos->next=p1; printf("插入成功\n");} }//合并链表 bool UnionList(struct list *pa,struct list *pb){struct list *head;head=pa;while(pa->next){pa=pa->next;}pa->next=pb->next;printf("合并后的链表为:\n"); while(head->next){printf("%d ",head->next->data);head=head->next;}printf("\n");}int main(){while(1){printf("************************************************************\n");printf("* 请输入你要实现的功能前的序号 *\n");printf("* 1 初始化链表 *\n");printf("* 2 对链表进行赋值 *\n");printf("* 3 向链表中取值 *\n");printf("* 4 向链表中插入元素 *\n");printf("* 5 归并链表 *\n"); printf("* 6 退出程序 *\n");printf("************************************************************\n");int x;scanf("%d",&x);if(x==1){printf("请输入你要初始化的链表a,b\n\n");getchar();char ch;ch=getchar();if(ch=='a'){la=InitList();if(!la)printf("初始化失败\n\n"); else{la->next=NULL;printf("初始化成功\n\n"); }}else if(ch=='b'){lb=InitList();if(!lb)printf("初始化失败\n\n"); else{lb->next=NULL;printf("初始化成功\n\n"); }}elseprintf("输入错误\n\n");}else if(x==2){printf("请输入你要进行赋值的链表a或者b\n\n");getchar();char ch=getchar();if(ch=='a') {if(!la)printf("请先对链表a进行初始化\n\n");elsela=ListInsert(la); }else if(ch=='b'){if(!lb)printf("请先对链表b进行初始化\n\n");elselb=ListInsert(lb);}}else if(x==3){printf("请输入你要进行取值的链表a或者b\n\n");getchar();char ch=getchar();if(ch=='a') {if(!la)printf("请先对链表a进行初始化\n\n");elseGetElem(la); }else if(ch=='b'){if(!lb)printf("请先对链表b进行初始化\n\n");elseGetElem(lb);}}else if(x==4){printf("请输入你要进行插入的链表a或者b\n\n");getchar();char ch=getchar();if(ch=='a') {if(!la)printf("请先对链表a进行初始化\n\n");elseInsertElem(la); }else if(ch=='b'){if(!lb)printf("请先对链表b进行初始化\n\n");elseInsertElem(lb);}} else if(x==5){if(!la){printf("请先初始化链表a\n");break;}if(!la){printf("请先初始化链表b\n");break;}UnionList(la,lb);} elsebreak;}return 0;}
2 0
- 线性表链式存储结构下基本操作的实现(初始化、赋值、取值、插入、删除、归并等)
- 线性表链式存储结构基本操作
- 编程实现顺序存储结构和链式存储结构线性表的建立、查找、插入、删除等基本操作
- 线性表链式存储结构实现 --单链表
- 线性表链式存储结构一种实现
- 线性表链式存储结构的c语言实现
- 线性表链式存储结构的表示和实现
- 线性表链式存储实现各种操作
- 线性表的基本操作:插入、删除、查找等操作在顺序存储结构和链接存储结构上的算法及其实现方法。 2006-05-05 10:32:58
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印
- 线性表链式存储结构
- 线性表链式存储结构
- 线性表链式存储结构
- 线性表链式存储结构
- 大话数据结构(二)——线性表链式存储结构(单链表)的java实现
- 线性表链式存储的实现
- 线性表链式存储的实现
- 线性表链式存储的实现详解
- 基于FBX SDK的FBX模型解析与加载 -(一)
- HDOJ 题目5067 Harry And Dig Machine(状压dp,TSP)
- 【数据结构与算法分析】证logX<X 对所有的X>0成立
- 关于:javaScript正则表达式语法
- LeetCode 091 Decode Ways
- 线性表链式存储结构下基本操作的实现(初始化、赋值、取值、插入、删除、归并等)
- android优秀开源代码
- Qt开发程序在Windows 10应用需要管理员运行的解决思路
- GLSL学习资料
- 开启从菜鸟走向大数据高手之路
- 作为码农,我们为什么要写作
- mod_wsgi
- OC 与JS(WebView)交互
- Keil4 每次选build 编译(F7)都全部编译的解决办法