头插建立单链表

#include <iostream>


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

using namespace std;

//带头指针的单链表

typedef  struct  LNode{
    int data;
    struct LNode *next;

}LNode, *LinkList;

bool InitList(LinkList &L){
    L = (LNode *) malloc(sizeof(LNode));
    if(L== NULL){
        return false;  //内存不足分配失败
    }
    L->next =NULL;
    return true;
}
bool empty(LinkList &L){
    return  (L->next==NULL);
}

LinkList List_headInsert(LinkList &L){

    LNode *s ;
    L->next =NULL;


    int x;
    scanf("%d",&x);
    while(x!=9999){
        s = (LNode *)malloc(sizeof(LNode));
        s->data = x;
        s->next = L->next;
        L->next = s;
        scanf("%d",&x);

    }
   
    return L;


}




int main(){
    LinkList L;
    InitList(L);

    List_headInsert(L);


   LNode *p = L->next;
   while(p){
       printf("%d \n",p->data);
       p=p->next;
   }












    return 0;
}
c语言中,使用法可以方便地建立单链表法是指将新的节点入到链表的部的方法。 首先,我们需要定义一个结构体来表示节点: ```c typedef struct Node { int data; // 节点数据 struct Node* next; // 指向下一个节点的指针 } Node; ``` 然后,我们可以使用法来建立单链表,具体步骤如下: 1. 创建一个节点,并将其初始化为NULL,表示链表为空。 2. 读取第一个节点的数据。 3. 如果读取到的数据不为0(或其它结束标志),则继续执行下面的步骤;否则跳到第7步。 4. 创建一个新节点,并将读取到的数据存入新节点的data中。 5. 将新节点的next指针指向节点指向的节点(即原来的第一个节点)。 6. 更新节点的指针,使其指向新节点,表示新节点成为链表的第一个节点。 7. 链表建立完成。 下面是一个示例代码,用于展示如何使用建立单链表: ```c #include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node* next; } Node; Node* createLinkedList() { Node* head = NULL; Node* newNode = NULL; int data; printf("请输入节点数据(以0作为结束标志):\n"); do { printf("节点数据:"); scanf("%d", &data); if (data == 0) { break; } newNode = (Node*)malloc(sizeof(Node)); newNode->data = data; newNode->next = head; head = newNode; } while (1); return head; } void printLinkedList(Node* head) { Node* currentNode = head; printf("链表数据:"); while (currentNode != NULL) { printf("%d ", currentNode->data); currentNode = currentNode->next; } printf("\n"); } int main() { Node* head = createLinkedList(); printLinkedList(head); return 0; } ``` 通过运行以上代码,可以根据输入的节点数据建立单链表,并将建立的链表数据打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值