当前位置:   article > 正文

C语言实现一个链表_申明一个链表的代码

申明一个链表的代码

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;<
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/645963
推荐阅读
相关标签
  

闽ICP备14008679号