用代码定义一个单链表

1、不带头结点的单链表

typedef struct LNode{   //定义单链表结点类型
    ElemType data;      //每个节点存放一个数据元素
    struct LNode *next; //指针指向下一个节点
}LNode,*LinkList;

//初始化一个空的单链表
bool InitList(LinkList &L){  //使用&,引用
    L=NULL;  //空表,暂时还没有任何结点
             //防止以前的脏数据没有清理
    return true;
}
void test(){
    LinkList L;     //声明一个指向单链表的指针
    //初始化一个空表
    InitList(L); 
}

2、带头结点的单链表

typedef struct LNode{   //定义单链表结点类型
    ElemType 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;
}
void test(){
    LinkList L;     //声明一个指向单链表的指针
    //初始化一个空表
    InitList(L); 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
定义一个单链表时,我们需要定义一个结构体来表示链表中的节点,每个节点包含两个部分:数据(可以是任意类型的数据)和一个指向下一个节点的指针。 以下是一个示例代码,定义了一个单链表的结构体和一些常用操作函数: ```c #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 struct Node { int data; struct Node* next; }; // 初始化链表 void initialize(struct Node** head) { *head = NULL; } // 在链表末尾插入节点 void insertAtEnd(struct Node** head, int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = NULL; if (*head == NULL) { *head = newNode; } else { struct Node* current = *head; while (current->next != NULL) { current = current->next; } current->next = newNode; } } // 打印链表 void printList(struct Node* head) { struct Node* current = head; while (current != NULL) { printf("%d ", current->data); current = current->next; } printf("\n"); } int main() { struct Node* head; initialize(&head); insertAtEnd(&head, 1); insertAtEnd(&head, 2); insertAtEnd(&head, 3); printf("Linked List: "); printList(head); return 0; } ``` 在上述示例中,我们定义了一个`Node`结构体来表示链表节点,包含一个整数类型的`data`成员和一个指向下一个节点的指针`next`。然后,我们定义了一些操作函数,如初始化链表、在链表末尾插入节点和打印链表等。在`main`函数中,我们创建了一个头节点`head`,并通过调用相应的函数来操作链表。 这只是一个简单的例子,你可以根据需要添加其他操作函数,并对链表进行更多的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bl‥ck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值