数据结构(C语言)-- 链表

基于C语言实现的链表
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define ERROR 0
#define OK 1
#define True 1
#define False 0
#define OVERFLOW -2

typedef  int ElemType; /*定义链表元素的类型*/
typedef  int Status;  /*定义函数的类型,其值是函数结果状态代码*/

typedef struct LNode{
     /*线性表的单链表存储*/
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

void  CreateList1_L(LinkList &L,  int n); /* 带头结点的单链表的建立(前插法) */
void  CreateList2_L(LinkList &L,  int n); /* 带头结点的单链表的建立(尾插法) */
void ClearList_L(LinkList &L);//清空线性表L
void DestroyList_L(LinkList &L); /* 销毁单链表 */

void PrintList_L(LinkList L); /*输出带头结点单链表的所有元素*/
Status InsertList_L(LinkList &L,int i,ElemType e);在带头结点的单链表L中第i个位置前插入元素e
Status DeleteList_L(LinkList &L, int i, ElemType &e);//删除第i个元素,并由e返回其值

Status GetElem_L(LinkList L,int i,ElemType &e); //获取第i个元素值
LNode *LocateELem1_L(LinkList L,ElemType e); //在线性表L中查找值为e的数据元素,返回L中值为e的数据元素的地址,查找失败返回NULL
int LocateELem2_L (LinkList L,ElemType e); //在线性表L中查找值为e的数据元素,返回L中值为e的数据元素的位置序号,查找失败返回0 
int ListLength_L(LinkList L);//获取表长
Status ListEmpty_L(LinkList L);//判断线性表L是否为空

void  CreateList1_L(LinkList &L,  int n)/* 带头结点的单链表的建立(前插法) */
{
   //输入n个元素的值,建立带表头结点的单链表L。
	LNode *p;
	L=(LNode *)malloc(sizeof(LNode));
	L->next=NULL;//建立一个带头结点的单链表
	printf("请输入n个数(前插法):\n");
	for(int i=n;i>=1;--i)
	{
   
		p=(LNode *)malloc(sizeof(LNode));   //生成新节点
		scanf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值