设计一个算法,完成一个链表的创建,输入,插入和删除的实现(使用C语言环境)

我们学数据结构,要求用最简单的方法设计这个算法,最好能给注释清楚~~复制的不要!!... 我们学数据结构,要求用最简单的方法设计这个算法,最好能给注释清楚~~复制的不要!! 展开
 我来答
抗芝文6272
2014-09-15 · TA获得超过150个赞
知道答主
回答量:122
采纳率:77%
帮助的人:58.6万
展开全部
/* 线性表-链表的操作: 只提供核心语句 */ #include "stdio.h" #include "stdlib.h" #define N 100 typedef int ElemType; /* 链表的存储结构 */ typedef struct LNode{ ElemType data; struct LNode *next; } LNode,*LinkList; /* 链表的基本操作 */ /******* 1.初始化链表 ******/ void InitList(LinkList *L) { *L=(LinkList)malloc(sizeof(LNode)); (*L)->next=NULL; } /******* 2.销毁链表 ******/ void DestroyList(LinkList *L) { LinkList p; while(*L!=NULL) { p=*L; *L=(*L)->next; free(p); } } /******* 10.在顺序表第n个位置插入元素e ******/ void ListInsert(LinkList *L, int n, ElemType e) { LinkList p,q,new; int i; q=*L; p=(*L)->next; i=1; while (p!=NULL && i<n) { q=p; p=p->next; i++; } new=(LinkList)malloc(sizeof(LNode)); new->data=e; q->next=new; new->next=p; } /******* 11.删除链表中第n个位置的元素 ******/ void ListDelete(LinkList *L, int n, ElemType *e) { LinkList p,q; int i; q=*L; p=(*L)->next; i=1; while (p!=NULL && i<n) { q=p; p=p->next; i++; } *e=p->data; q->next=p->next; free(p); } /******* 12.遍历链表并输出 ******/ void ListTraverse(LinkList L) { LinkList p; printf("\nList:\t"); p=L->next; while (p!=NULL) { printf("%d\t",p->data); p=p->next; } } /******* A(2).后接法建立顺序链表 ******/ void CreateList2(LinkList *L, ElemType a[], int n) { LinkList p,new; int i; p=*L; for(i=0; i<n; i++) { new=(LinkList)malloc(sizeof(LNode)); new->data=a[i]; p->next=new; p=p->next; } p->next=NULL; } /* 主函数 */ main() { LinkList La; ElemType a[]={1,3,5,7,9},x; InitList(&La);//初始化链表 CreateList2(&La,a,5);//建立链表并用数组赋值 ListTraverse(La);//遍历链表 ListInsert(&La, 3, 100);//第三个位置插入100 ListTraverse(La);//遍历链表 ListDelete(&La,5,&x);//删除第五个元素,用x返回 ListTraverse(La);//遍历链表 DestroyList(&La);//销毁链表 } 真是恭喜您了 我们刚上完这章,以上答案绝对正确简洁
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式