双链表(尾部有序)
来源:互联网 发布:深度linux 安装 编辑:程序博客网 时间:2024/05/21 09:37
pragma once
include
include
typedef struct _NODE
{
int index; // 学号
char name[8]; // 名字
_NODE* prev; // 前一个节点地址
_NODE* next; // 后一个节点地址
}NODE;
//插入
NODE* _insert(NODE* list_tail, int index, const char* name);
//删除
bool _remove(const char*name);
//修改
bool _modify(NODE* list_tail,int index, const char* name);
bool _remove(NODE* list_tail, int index);
NODE* _find(NODE* list_tail,int index);
void _clear(NODE* list_tail);
void _show(NODE* list_tail);
//清空链表
//bool _clear();
#include "two-way.h"#include <math.h>#include <stdlib.h>#include <string.h>//插入NODE* _insert(NODE* list_tail, int index, const char* name){ NODE* node = (NODE*)malloc(sizeof(NODE)); memset(node,0,sizeof(NODE)); node->index = index; strcpy(node->name, name); node-> prev=NULL; node-> next=NULL; if (list_tail==NULL) { list_tail = node; return list_tail; } if (node->index>list_tail->index) { list_tail->next = node; node->prev = list_tail; return list_tail; } for (NODE* p=list_tail;p!=NULL;p=p->prev) { if (node->index < p->index && p->prev==NULL) { node->next = p; p->prev = node; return node; } if (node->index<p->index&&node->index>p->prev->index) { node->next = p; node->prev = p->prev; p->prev->next = node; p->prev = node; return node; } /*if (p->prev == NULL) { node->next = p; p->prev = node; return node; } if (node->index > p->prev->index) { node->next = p; node->prev = p->prev; p->prev->next = node; p->prev = node; return node; } */ } return NULL;}////修改//bool _modify(NODE* list_tail, int index, const char* name)//{////}//bool _remove(NODE* list_tail, int index)//{////}//找到//NODE* _find(NODE* list_tail, int index)//{// //}////清空链表//void _clear(NODE* list_tail)//{// //}void _show(NODE* list_tail){ NODE* p = NULL; for (p=list_tail;p!=NULL;p=p->prev) { printf("%d %s",list_tail->index,list_tail->name); } printf("\n");}void main(){ NODE* p = NULL; p = _insert(p,3,"张三"); _show(p); p = _insert(p,1,"李四"); _show(p); p = _insert(p,2,"王三"); _show(p); system("pause");}
阅读全文
0 0
- 双链表(尾部有序)
- 有序双链表的建立
- 双链表有序插入
- 保留尾部*
- 有序双链表的插入问题
- 《Java数据结构与算法》笔记-CH5-链表-8实现双链表,头部和尾部插入和删除
- 消除尾部递归
- 什么是尾部递归
- 尾部插入节点
- 十一月份的尾部
- 阶乘尾部的0
- 题目:尾部的零
- 算EEPROM 尾部长度
- LintCode 尾部的零
- LintCode_尾部的零
- 尾部的零
- 统计n!尾部零
- lintcode ---- 尾部的零
- 三角形的判定
- 实训项目第一周
- SGU 106 The equation(扩展欧几里德)
- Java网站安全笔记
- 使用Jquery官方自带的显示时间的一款插件jquery.jclock.js
- 双链表(尾部有序)
- python导入gensim出现警告
- 最难的一句sql
- 信号屏蔽字&信号未决字
- 关于gperftools
- Java编程题2
- Intellij IDEA 添加jar包的三种方式
- ant编译 tomcat源码 导入 eclispe
- 关于shiro session失效报错问题