首页 > 代码库 > 线性表的链式存储结构
线性表的链式存储结构
要求:使用头插法和尾插法来分别创建两个线性表,编程实现单链表的查找、插入和删除操作的算法。
首先引入头文件,定义结构体:
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef int ElemType;//定义节点类型typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;
(1)、创建链表
头插法:链表的逻辑顺序与结点的插入顺序相反,即逆序。从一个空表开始,反复的读入数据,生成结点放到链表中,注意这里是插入到当前链表的表头之后,如下图:
创建方法如下:
//单链表的建立(头插法建立)LinkList CreateLinkList_H(){ LNode *L; ElemType x; //申请头结点的空间 L=(LNode *)malloc(sizeof(LNode)); L->next=NULL; scanf("%d",&x); while(x!=-1) { LNode *p; p=(LNode *)malloc(sizeof(LNode));//申请新节点的空间 p->data=http://www.mamicode.com/x;"%d",&x); } return L;}
尾插法:线性表的逻辑顺序与节点的插入顺序相同,将新节点插入到当前链表的链尾上,为此必须加上一个尾指针指针p使其一直指向当前链表的尾结点。如图
创建方法如下:
//单链表的建立(尾插法建立)LinkList CreateLinkList_T(){ LNode *L,*r,*p; ElemType x; L=(LNode *)malloc(sizeof(LNode)); L->next=NULL; r=L; scanf("%d",&x); while(x!=-1) { p=(LNode*)malloc(sizeof(LNode)); p->data=http://www.mamicode.com/x;"%d",&x); } r->next=NULL; return L;}
线性表的链式存储结构
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。