求助。。。。

「已注销」 2020-05-18 11:01:36
数据结构,单链表的实现 用C语言编写程序,完成以下功能:      (1)运行时输入数据,创建一个单链表     (2)可在单链表的任意位置插入新结点     (3)可删除单链表的任意一个结点  (4)在单链表中查找结点      (5)输出单链表
...全文
102 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple-Soft 2020-05-19
  • 打赏
  • 举报
回复
#include <stdio.h> #include <malloc.h> /* 1.运行时输入数据 2.任意位置插入新节点 3.删除任意节点 4.查找节点 5.输出链表 */ typedef struct _NODE_ { int data; _NODE_ *next; }NODE,*PNODE; PNODE head = NULL; void print_menu() { printf("********输入对应的数字进行操作,然后按回车\n"); printf("********1.插入节点\n"); printf("********2.删除节点\n"); printf("********3.查找节点\n"); printf("********4.查看所有节点\n"); printf("********q.退出\n"); } int node_num() { int num = 0; if(!head) return num; PNODE node = head; while(node) { num++; node = node->next; } return num; } void insert_node() { int data; int num = node_num(); int pos = 0; printf("请输入要插入的数据位置,然后按回车(%d-%d):\n",1,num+1); scanf("%d",&pos); if(pos >= num+1) pos = num+1; printf("请输入要插入的数据(正整数),然后按回车:\n"); scanf("%d",&data); PNODE node = (PNODE)malloc(sizeof(NODE)); node->data = data; pos--; if(pos < 0) pos = 0; PNODE n = head; PNODE prev = head; int i=0; if(!n || pos == 0) { node->next = head; head = node; } else { while(n) { i++; prev = n; n = n->next; if(i == pos) { prev->next = node; node->next = n; break; } } } } void find_node() { printf("请输入要删除的节点的数据值,然后按回车\n"); int data = 0; scanf("%d",&data); PNODE node = head; bool found = false; while(node) { if(node->data == data) { printf("找到节点值为%d的节点\n",data); found = true; break; } node = node->next; } if(!found) { printf("没有找到节点值为%d的节点\n",data); } } void delete_node() { printf("请输入要删除的节点的数据值,然后按回车\n"); int data = 0; scanf("%d",&data); PNODE node =head; PNODE prev = head; while( node ) { if( node->data == data) { if(prev) { prev->next = node->next; free(node); } break; } prev = node; node = node->next; } } void view_node() { PNODE node = head; while(node) { printf("Data: %d\n",node->data); node = node->next; } } int main() { head = NULL; print_menu(); while(true) { char c=getchar(); switch(c) { case '1': insert_node(); break; case '2': delete_node(); break; case '3': find_node(); break; case '4': view_node(); break; case 'q': return 0; default: break; } } return 0; }

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧