(数据结构)单链表的查找和长度计算
2023-12-17 16:37:39
?代码实现
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode* next;
}LNode,*LinkList;
//创建头结点
LNode* InitList(LinkList L)
{
L = (LNode*)malloc(sizeof(LNode));
if (L == NULL)
{
return NULL;
}
L->data = 0;
L->next = NULL;
return L;
}
//插入
int ListInsert(LinkList L, int i, int e)
{
if (i < 1||L==NULL)
{
return 1;
}
LNode* p;
int j = 0;
p = L;
while (p!= NULL && j < i - 1)
{
p = p->next;
j++;
}
if (p == NULL)
{
return 1;
}
LinkList q =(LNode*)malloc(sizeof(LNode));
if (q == NULL)
{
return 1;
}
q->data = e;
q->next = p->next;
p->next = q;
return 0;
}
//删除
int ListDelete(LinkList L, int i, int* e)
{
if (i < 1 || L == NULL)
{
return 1;
}
LNode* p;
int j = 0;
p = L;
while (p!= NULL || j < i - 1)
{
p = p->next;
j++;
}
if (p == NULL)
{
return 1;
}
LNode* q =(LNode*) malloc(sizeof(LNode));
q = p->next;
*e = q->data;
p->next = q->next;
free(q);
return 0;
}
//判断链表为空
int Empty(LinkList L)
{
if (L->next == NULL)
{
return 1;
}
else
{
return 0;
}
}
//计算链表长度
int Length(LinkList L)
{
if (L == NULL)
{
return 0;
}
LNode* p;
int len=0;
p = L;
while (p->next != NULL)
{
p = p->next;
len++;
}
return len;
}
int main()
{
LinkList L =(LNode*)malloc(sizeof(LNode));
return 0;
}
文章来源:https://blog.csdn.net/2301_79580018/article/details/135045161
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!