c描述双向链表删除结
来源:互联网 发布:谷歌优化排名 编辑:程序博客网 时间:2024/05/17 22:46
运行不出来。我的删除部分有2个函数,一个是把要删除的数据取出,一个是删除它。请教各位!能判断是代码末尾的那个函数有问题?
#include <stdio.h>#include <stdlib.h>struct node { int value; struct node * prior; struct node * next;};struct node * in_link(void); //创建一个双向链表void print_link(struct node * head);struct node * delete_link(struct node * head, int i); //删除链表结点struct node * get(struct node * head, int i);int main(void){ int i, y; struct node * head; head = in_link(); print_link(head); printf("你想删除数据在链表的第几个数据: "); scanf("%d", &i); head = delete_link(head, i); print_link(head); return 0;}struct node * in_link(void){ struct node *head, *temp, *add_temp; int n, i; printf("您想插入几个数据: "); scanf("%d", &n); head = (struct node *) malloc(sizeof(struct node)); if (head == NULL) { printf("分配内存失败\n"); exit (EXIT_FAILURE); } printf("请输入链表的第1个数据: "); scanf("%d", &head->value); head->next = NULL; temp = head; for (i = 2;i <= n;i++) { add_temp = (struct node *) malloc(sizeof(struct node)); //动态分配内存空间 if (add_temp == NULL) { printf("内存分配失败\n"); exit (EXIT_FAILURE); } printf("请输入链表的第%d个数据: ", i); scanf("%d", &add_temp->value); add_temp->next = NULL; temp->next = add_temp; temp = temp->next; } return head;}void print_link(struct node * head){ while (head != NULL) { printf("%d ", head->value); head = head->next; } printf("\n");}struct node * get(struct node * head, int i) //将你想删除的数据取出{ struct node * temp; int j = 1; temp = head; while (temp != NULL && j < i) { temp = temp->next; j++; } printf("%d\n", temp->value); return temp; }struct node * delete_link(struct node * head, int i) //删除取出的数据,调用了get函数{ struct node * temp; temp = get(head, i); temp->prior->next = temp->next; temp->next->prior = temp->prior; free(temp); return head;}
0 0
- c描述双向链表删除结
- C语言实现双向链表删除、插入、双向输出
- python描述双向链表
- C语言实现双向链表插入,删除
- C语言---双向链表的插入、删除、查找操作
- C语言---双向链表的插入、删除、查找操作
- c/c++ 双向链表 创建 插入 删除
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- 数据结构与算法(C语言描述)——双向链表
- 数据结构——c语言描述 第二章(3) 双向链表
- <数据结构与算法>双向循环链表的全面基本框架(C语言描述)
- 双向链表插入删除
- 双向链表删除节点
- 双向链表删除问题
- 双向链表c
- C双向链表
- 【C++】双向链表
- 【C++】双向链表
- 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇2、高分一号(GF-1)卫星影像数据介绍
- @mysql_select_db ,在mysql_select_db()前加上@是什么意思?
- 数据类型需注意的问题
- PHP 的 urlencode 函数的使用方法
- 我
- c描述双向链表删除结
- uboot2013-10移植(二)--mkconfig注释
- 为了爱情皱纹的不知带
- bios里super password灰色的设置方法
- 就那样好看,il.o;/
- PHP 的 session_encode() 和 session_decode() 函数
- 递归算法空间的缩减方法与尾递归
- android.process.acore不运行及其它问题解决
- 【js学习笔记-101】------借助<script>发送HTTP请求