📄 线性表的链式存储结构.txt
字号:
#include"stdio.h"
#include<stdlib.h>
int length;//保存线性链表的长度
typedef struct lnode{
float data;
struct lnode *next;
}*linklist;
void initlist(linklist &l){
linklist p;
int i=0;
p=(linklist)malloc(sizeof(lnode));
l=(linklist)malloc(sizeof(lnode));
printf("有多少元素需要输入:");
scanf("%d",&length);
printf("请输入数据元素:");
scanf("%f",&p->data);
while(i<length-1){
l->next=p;
p=(linklist)malloc(sizeof(lnode));
scanf("%f",&p->data);
p->next=l->next;
i++;
}
l->next=p;
}//用前插对线性链表进行初始化
int listlength(linklist l){
int i=0;
linklist p=l;
while(p->next){
i++;
p=p->next;
}
return i;
}
void destroylist(linklist &l){
l->next=NULL;
free(l);
}//销毁线性链表
void clearlist(linklist &l){
l->next=NULL;
}//清空线性链表
bool listempty(linklist l){
if(l->next==NULL)
return true;
else
return false;
}//判断线性链表是否为空,为空时,返回true,不为空时返回false
float getelem(linklist l,int i,float e){
int k;
linklist p=l;
for(k=0;k<i;k++)
p=p->next;
e=p->data;
return e;
}//获得线性链表中的第i个元素,并有e返回其值
void listinsert(linklist &l,int i,float e){
int k;//循环控制变量
linklist p=l;
linklist mid;
mid=(linklist)malloc(sizeof(lnode));
mid->data=e;
for(k=0;k<i-1;k++)
p=p->next;
mid->next=p->next;
p->next=mid;
length++;
}//将元素e插入到线性链表l的第i个元素的前面
float listdelete(linklist &l,int i,float e){
int k;
linklist p=l;
for(k=0;k<i-1;k++)
p=p->next;
e=p->next->data;
p->next=p->next->next;
length--;
return e;
}//删除线性链表中的第i个元素,并以e返回其值
void main(){
float m=5;
linklist l;
int k;
initlist(l);
listinsert(l,4,m);
printf("插入以后线性链表为:\n");
for(k=0;k<length;k++){
printf("%5.2f\n",l->next->data);
l=l->next;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -