7-2 单链表的创建及遍历 (20分)读入n值及n个整数,建立单链表并遍历输出。

7-2 单链表的创建及遍历 (20分)读入n值及n个整数,建立单链表并遍历输出。

输入格式:
读入n及n个整数。
输出格式:
输出n个整数,以空格分隔(最后一个数的后面没有空格)。
输入样例:
在这里给出一组输入。例如:
2
10 5

输出样例:
在这里给出相应的输出。例如:
10 5
ps:作者: 陈晓梅单位: 广东外语外贸大学时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB

#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct node*next;
    }linklist;
linklist *CreatListR(int n){
    int i,m;
    linklist  *head,*s,*r;    
    head=(linklist*)malloc(sizeof(linklist));    
    r=head;    
    for(i=0;i<n;i++){                
    s=(linklist*)malloc(sizeof(linklist));        
    scanf("%d",&m);       
     s->data=m;       
      r->next=s;        
      r=s;                    }    
      r->next=NULL;    
      return head;}  
      int main(){    
      int n;   
      scanf("%d",&n);    
      if(n<=0) return 0;    
      linklist *s;    
      s=CreatListR(n);   
      s=s->next;    
      printf("%d",s->data);    
      while(s->next!=NULL){        
      s=s->next;        
      printf(" %d",s->data);
          }     
           return 0;
       }
  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```python # 定义链表节点类 class ListNode: def __init__(self, val=, next=None): self.val = val self.next = next # 读入n值 n = int(input()) # 读入n个整数 nums = list(map(int, input().split())) # 建立单链表 head = ListNode(nums[]) cur = head for i in range(1, n): cur.next = ListNode(nums[i]) cur = cur.next # 遍历输出 cur = head while cur: print(cur.val, end=' ') cur = cur.next ``` 以上代码中,我们首先定义了一个链表节点类 `ListNode`,包含节点值 `val` 和指向下一个节点的指针 `next`。然后读入了 n 值和 n 个整数,接着根据这些整数建立单链表。最后使用一个循环遍历链表并输出每个节点的值。 ### 回答2: 单链表是一种非常常用的数据结构,可以用来保存一系列的数据,并且支持高效地插入、删除及访问。建立单链表的基本思路就是从头开始,不断地将新节点插入到链表的末尾。在这个过程中,需要用一个指针指向当前链表的末尾节点,以方便插入新的节点。具体步骤如下: 1. 读入n和n个整数,保存到一个数组中。 2. 定义一个链表的头指针,初始化为NULL。 3. 用一个循环将数组中的整数依次插入到链表的末尾。具体步骤如下: 1) 创建一个新节点,并将数组中的一个整数赋值给新节点的数据域。 2) 如果链表为空,则将新节点作为头节点插入。 3) 否则,用一个指针指向当前链表的末尾节点,并将新节点插入到末尾节点的next指针所指向的位置。 4) 更新末尾节点指针为新节点。 4. 遍历整个链表,并输出每个节点的数据值。 1) 用一个指针指向链表的头节点。 2) 从头节点开始,依次访问每个节点,并输出它的数据值。 3) 直到链表的末尾节点,即指针为NULL,结束遍历。 通过以上步骤,就能够建立一个包含n个整数单链表,并顺序输出每个节点的数据值。 ### 回答3: 单链表是一种常用的数据结构之一,它由若干个节点组成,每个节点包含两个部:一是数据域,用来存放数据;二是指针域,用来指向下一个节点。最后一个节点指向空地址NULL,表示该链表已经结束。对于读入n值及n个整数,我们可以使用循环将这些数据依次插入到链表的末尾,从而建立出完整的单链表建立单链表需要一个头节点,它通常不存放数据,只起到连接整个链表的作用。整个建立过程可以为以下步骤: 1. 首先定义一个节点结构体,用来描述每个节点的数据结构。结构体中包含数据和指向下一个节点的指针,如下所示: ```c typedef struct Node { int data; struct Node *next; } Node; ``` 2. 然后创建一个头节点,并将头节点的指针域初始化为空指针,表示当前链表为空。 ```c Node *head = (Node *) malloc(sizeof(Node)); head->next = NULL; ``` 3. 接下来可以利用for循环读入n个整数,每次创建一个新的节点,并将数据插入到该节点中。然后将该节点插入到链表的末尾,即将它的指针域赋值为NULL,然后将上一个节点的指针域指向该节点。 ```c Node *p = head; // 指向尾节点的指针 for (int i = 0; i < n; i++) { Node *new_node = (Node *) malloc(sizeof(Node)); // 创建新节点 scanf("%d", &(new_node->data)); // 读入数据 new_node->next = NULL; // 将其指针域赋值为空 p->next = new_node; // 将上一个节点的指针域指向该节点 p = new_node; // 将p指向新节点,成为新的尾节点 } ``` 4. 最后利用while循环遍历整个链表,输出每个节点的数据即可。 ```c Node *p = head->next; // 从第一个节点开始遍历 while (p != NULL) { printf("%d ", p->data); p = p->next; } ``` 以上就是建立单链表遍历输出的方法,它可以适用于大部单链表的实现场景。在实际编写过程中,可以根据具体需求进行优化,比如可以添加插入和删除节点的函数,以便更方便地操作单链表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值