c语言删除结点,C语言在链表中删除结点

该程序演示了如何在C语言中删除链表中的结点。通过del_node函数,可以按位置和长度删除链表结点。main函数创建了一个链表并允许用户输入要删除的结点位置和长度,然后输出删除后的链表。
摘要由CSDN通过智能技术生成

/****************************************************************

该程序实现结点的删除。

其中void *del_node(TYM *head,int pos,int len)函数用于删除结

点,head为需要删除结点的链表、pos为结点的位置、len为需要删除

的长度。

****************************************************************/

#include

#include

typedef struct stu                                            //定义TYM类型

{

char name[20];

int num;

struct stu *next;

}TYM;

void *del_node(TYM *head,int pos,int len)     //删除结点指针函数

{

int i;

TYM *p,*q;

if(pos==1)                                                   //如果删除的位置是首地址

{

for(i=0;i

{

p = head;                                          //使p指向head

head = head->next;                          //使head指向下一个结点

free(p);             

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的例子,用C语言定义结点类型,创建链表,遍历链表的代码: ```c #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 struct Node { int data; // 数据域 struct Node* next; // 指针域 }; // 创建链表函数 struct Node* createLinkedList(int n) { struct Node* head = NULL; struct Node* tail = NULL; for (int i = 1; i <= n; i++) { // 创建一个新的节点 struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = i; newNode->next = NULL; if (head == NULL) { // 如果链表为空,则新节点为头节点和尾节点 head = newNode; tail = newNode; } else { // 否则,将新节点插入到尾节点后面 tail->next = newNode; tail = newNode; } } return head; } // 遍历链表函数 void traverseLinkedList(struct Node* head) { struct Node* current = head; while (current != NULL) { printf("%d ", current->data); current = current->next; } printf("\n"); } int main() { // 创建链表 struct Node* head = createLinkedList(5); // 遍历链表 traverseLinkedList(head); return 0; } ``` 在这个例子,我们定义了一个 `Node` 结构体来表示链表节点,包含一个整数数据域和一个指向下一个节点的指针域。`createLinkedList` 函数用于创建一个包含 `n` 个节点链表,并返回链表的头节点。`traverseLinkedList` 函数用于遍历链表并输出每个节点的数据。在 `main` 函数,我们调用 `createLinkedList` 创建了一个包含5个节点链表,并调用 `traverseLinkedList` 遍历输出链表的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值