单链表的创建与遍历--C

基本结构声明

struct node{
    int data;       //数据域
    struct node *next;//指针域
};

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

struct node{//链表结点 
	int data;//数据域 
	struct node *next;//指针域 
};
typedef struct node Node;
int main(void){
	Node *head,*p,*q;//a
	p=(Node*)malloc(sizeof(Node));//第一个结点 
	p->data=20;
	head=p;//头指针指向第一个结点 
	
	for(int i=1;i<=3;i++){
		q=(Node*)malloc(sizeof(Node));//q指向新申请的结点 
		q->data=(i+2)*10;//新结点数据域赋值 
		p->next=q;//新节点链接到表尾 
		p=q;//p指向尾结点 
	}
	
	p->next=NULL;//最后的尾结点的指针域要为空 
	
	printf("%#x\n",head);
	
	for(Node *p=head;p!=NULL;p=p->next){//遍历链表,然后就可以输出每个结点的地址 
		printf("%#x\t",p);
	}
	printf("\n");
	for(Node *p=head;p!=NULL;p=p->next){
		printf("%d  %#x   ",p->data,p->next);
	}
}

结果

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单链表是一种常见的数据结构,它由一个个节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。单链表创建遍历可以使用C语言实现。 创建单链表的步骤: 1. 定义链表节点的数据结构,包括数据元素和指向下一个节点的指针。 2. 定义头节点,并初始化为空。 3. 循环读入数据,创建新节点,将数据存储到新节点中,将新节点插入到链表的末尾。 4. 返回头节点。 下面是C语言实现的代码: ``` #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 typedef struct ListNode { int data; // 数据元素 struct ListNode* next; // 下一个节点指针 } ListNode; // 创建单链表函数 ListNode* createList() { ListNode* head = NULL; // 定义头节点并初始化为空 ListNode* tail = NULL; // 定义尾节点并初始化为空 int data; printf("请输入数据(输入-1结束):\n"); scanf("%d", &data); while (data != -1) { ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); // 创建新节点 newNode->data = data; // 存储数据 newNode->next = NULL; // 新节点的下一个节点指针指向空 if (head == NULL) { // 如果头节点为空,说明链表还没有节点 head = newNode; // 将头节点指向新节点 tail = newNode; // 将尾节点也指向新节点 } else { tail->next = newNode; // 将新节点连接到链表末尾 tail = newNode; // 更新尾节点 } scanf("%d", &data); // 继续读入数据 } return head; // 返回头节点 } // 遍历单链表函数 void traverseList(ListNode* head) { printf("链表数据:\n"); ListNode* p = head; // 定义指针p指向头节点 while (p != NULL) { // 循环遍历链表 printf("%d ", p->data); // 输出节点数据 p = p->next; // 将指针p指向下一个节点 } printf("\n"); } int main() { ListNode* head = createList(); // 创建单链表 traverseList(head); // 遍历单链表 return 0; } ``` 在上面的代码中,我们定义了链表节点结构体`ListNode`,包含数据元素`data`和指向下一个节点的指针`next`。在创建单链表的函数`createList()`中,我们定义了头节点`head`和尾节点`tail`,并循环读入数据,创建新节点并将其插入到链表末尾。最后,我们返回头节点。在遍历单链表的函数`traverseList()`中,我们定义了指针`p`指向头节点,循环遍历链表,输出节点数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值