C语言实现一个链表

本文复习C语言实现链表,详细介绍了如何使用迭代和递归方法来创建并操作链表的基本功能。
摘要由CSDN通过智能技术生成

C语言链表复习


使用C语言实现链表及其基本功能,每种功能实现都使用了迭代写法和与其对应的一种或多种递归写法


#include<stdio.h>
#include<stdlib.h>

#define count 0
#define max_f(a, b) (a > b)? a : b
#define min_f(a, b) (a < b)? a : b

typedef struct Node{
   
	int data;
	struct Node * next;
	}node;

typedef struct Node *link;
typedef link list;

void print (list p)  // 打印链表中所有数据
{
   
    while (p!=NULL) {
   
        printf("%d  ", p->data);
        p=p->next;
    }
    putchar ('\n');
}

list create (char *s)  // 创建一个链表
{
   
    link cur;
    list res;
    if (*s=='\0') return NULL;
    res=cur=(link) malloc (sizeof (node));
    cur->data = *s - '0';
    s++;
    while (*s!='\0') {
   
        cur=cur->next=(list) malloc(sizeof (node));
        cur->data=*s - '0';
        s++;
    }
    cur->next = NULL;
    return res;
}

/*链表的创建
1,-双头节点创建- 创建两个相同头节点指针,并动态malloc分配一个地址给其一,操作其中一个头节点,返回的另一个头节点即为所要的链表。
2,-头节点预处理-  因为已经提前创建了头节点,所以在进入下一步(循环)前,处理好头节点(赋值,next)
3,-循环-,处理节点(开辟内存,赋值)
4,-封尾- 尾节点加上p -> next = NULL;*/

int sum_1(list p){
     // 迭代 求链表所有数据的和
    link t = p;
    int sum_all = 0;
    while(t != NULL){
   
        sum_all  +=  t -> data;<
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值