《算法学习》数据结构之单链表

一、简介:使用C语言创建含有头结点的单链表并打印

二、代码内容:

  1. 头文件:“stdlib.h” 为了使用”malloc()“函数;
  2. 结构体:LinkedList为指针类型,Node为结构体类型,使用typedef定义指针类型时,*在标识符前;
  3. 函数声明: void add(LinkedList  head) ---> 尾插法构建单链表(带头结点),传入参数为链表头结点;void printf(const LinkedList head) --->打印单链表,传入参数为链表头结点;
  4. 测试用例:
  • 使用Node head并调用add()函数;
  • 使用LinkedList head并调用add()函数;
  • 注:无论使用哪一种,必须对变量初始化,让其next域指向NULL。

     5.代码实现:

  void add(LinkedList head)

声明两个指针结点 node存储用户输入的整数,tail指向链表的尾结点。

void printf(const LinkedList head )

过于简单,这里不作太多阐述。

三、C语言代码 (可复制)

#include<stdio.h>
#include<stdlib.h>
typedef int E;

typedef struct _node {
	E val;
	struct _node *next;

}*LinkedList,Node;


//---- claim function
void add(LinkedList head);//尾插法构建单链表
void printf(const LinkedList head);//打印单链表
int main() {
/*
	head.val=-1;
	head.next=NULL;
	add(&head);
	printf(&head);*/
	Node head;
	LinkedList list;
	list=(LinkedList)malloc(sizeof(Node));
	list->val=-1;
	list->next=NULL;
	add(list);
	printf(list);
	return 0;
}
//打印链表
void printf(const LinkedList head){
	Node *p=head->next;
	while(p){
	printf("%d->",p->val);
		p=p->next;
	}
	printf("NULL\n");
	
}
//添加结点,尾插法
void add(LinkedList head) {
	E number;
	Node *node;
	Node *tail=head;
	if(head == NULL)
	{
		printf("Error:list is NULL!\n");
		return;
	}
	printf("Enter an integer, ending with -1\n ");
	do {
		scanf("%d",&number);
		if(-1 != number) {
			node=(Node*)malloc(sizeof(Node));
			node->val=number;
			node->next=NULL;
	
			tail->next=node;
            tail=node;
		}
	} while(number != -1);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值