c语言设计函数删除大写字母,C语言编程:26个英文字母建立单链表,可插入删除查找和求长度...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

35y0t63beq

2013.03.14

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:58%    等级:12

已帮助:14628人

#include

#include

typedef struct LNode

{char character; struct LNode*next; }LNode,*PLNode;

PLNode CreateList()/*创建单链表*/

{PLNode P,head,q; int i; head=(PLNode)malloc(sizeof(LNode)); p=head; p->next=NULL; for(i=0;i<26;i++) {q=(PLNode)malloc(sizeof(LNode)); q->character='a'+i; q->next=NULL; p->next=q; p=q; }

return PLNode;

}

int Length(PLNode head)/*求长度*/

{int n=0; PLNode p; p=head->next; while(p) {n++; p=p->next; }

return n;

}

voie Insert(PLNode head,int position,char chr)/*插入到第i的位置*/

{int i; PNLode p,q; if(Length(head)+1

else

{p=head; i=0; while(inext; i++; }

q=(PLNode)malloc(sizeof(LNode));

q->character=chr;

q->next=p->next;

p->next=q;

}

}

void Delete(PLNode head,int n)/*删除第n个位置的接点*/

{int i; PNLode p,q; if(Length(head)+1

else

{p=head; i=0; while(inext; i++; }

p->next=p->next->next;

}

}

10分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是用C语言实现链表,并实现插入删除查找操作的示例代码: ```c #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 typedef struct ListNode { int val; struct ListNode *next; } ListNode; // 创建新节点 ListNode* createNode(int val) { ListNode *node = (ListNode*)malloc(sizeof(ListNode)); node->val = val; node->next = NULL; return node; } // 插入节点 void insertNode(ListNode *head, int val) { ListNode *node = createNode(val); while (head->next != NULL) { head = head->next; } head->next = node; } // 删除节点 void deleteNode(ListNode *head, int val) { while (head->next != NULL) { if (head->next->val == val) { ListNode *temp = head->next; head->next = head->next->next; free(temp); return; } head = head->next; } } // 查找节点 ListNode* findNode(ListNode *head, int val) { while (head->next != NULL) { if (head->next->val == val) { return head->next; } head = head->next; } return NULL; } // 打印链表 void printList(ListNode *head) { while (head->next != NULL) { printf("%d ", head->next->val); head = head->next; } printf("\n"); } int main() { // 创建链表头节点 ListNode *head = createNode(0); // 插入节点 insertNode(head, 1); insertNode(head, 2); insertNode(head, 3); // 打印链表 printf("链表:"); printList(head); // 查找节点 ListNode *node = findNode(head, 2); if (node != NULL) { printf("查找节点值为2的节点成功\n"); } else { printf("查找节点值为2的节点失败\n"); } // 删除节点 deleteNode(head, 2); printf("删除节点后的链表:"); printList(head); return 0; } ``` 该代码中,`ListNode`表示链表中的一个节点,包含一个整数`val`和一个指向下一个节点的指针`next`。`createNode`函数用于创建一个新节点,`insertNode`函数用于在链表尾部插入一个节点,`deleteNode`函数用于删除链表中值为给定值的第一个节点,`findNode`函数用于查找链表中值为给定值的第一个节点,`printList`函数用于打印整个链表。在主函数中,首先创建链表头节点,然后插入节点,打印链表查找节点,删除节点,最后打印删除节点后的链表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值