数据结构C语言版--单链表的基本功能实现

/*
* 构造一个链式存储的线性表(当输入9999时,结束构造过程),然后输出该线性表
* 并统计该线性链表的长度 。
*注:new和delete是C++的运算符
    malloc和free是C++/C的标准库函数 
*/ 
#include<stdio.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
//单链表的存储结构 
struct LinkNode{
    int data;                   //节点的数据域 
    struct LinkNode *next;      //节点的指针域 
}; 

//1.打印输出,链表的数据,其中链表指向头节点 
void print(LinkNode *L){
    LinkNode *p;        //定义一个指针变量p 
    p = L->next;        //使p指向链表L的第一个数据 
    while(p != 0){
        printf("%d、",p->data);
        p = p->next;    //指针后移 
    }
    printf("\n");       //换行 
}

//2.链表长度
int Length_LinkList(LinkNode *L){
    LinkNode *p;                    //定义一个指针变量 
    int len = 0;                    //  定义一个计数器,计算节点个数 
    p = L->next;                    //指针P指向链表的第一个节点 
    while(p != NULL){
        len++ ;     
        p = p->next;                //指针后移,即指向当前节点的后继节点 
    }
    return len;                     //返回链表长度 
} 

//3.按位置查找,单链表中寻找第i个元素,返回指向第i个节点的指针
LinkNode* FindI_LinkNode(LinkNode *L,int i){
    LinkNode *p;        //定义指针变量 
    int j = 1;          //定义计数器 
    p = L->next;        //让p指向头节点 
    while(j < i){       //当没有找到第i个节点 
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值