C/C++ 知识点回顾 双向链表的创建、插入和删除
来源:互联网 发布:微信开放平台 php源码 编辑:程序博客网 时间:2024/06/05 22:36
#include<iostream>using namespace std;typedef struct student{int data;struct student *pre;struct student * next;//注意!!!!此处不能用dnode * next;} dnode;//输出void print(dnode * head){if (head == NULL){return;}dnode * p = head;while (p){cout << p->data << ' ';p = p->next;}cout << endl;}//创建双向链表dnode * create(){dnode *head = (dnode *)malloc(sizeof(dnode));dnode *p = head, *q=NULL;//一定要初始化int n = 0;while (cin>>n&&n){q = (dnode *)malloc(sizeof(dnode));q->next = NULL;//一定要初始化q->data = n;q->pre = p;p->next = q;p = q;}head = head->next;head->pre = NULL;print(head);return head;}//双向链表删除节点dnode * del(dnode * head, int num){dnode *p = head;dnode *q = head;while (p->data != num&&p->next){p = p->next;}if (p->data == num){if (p == head){head = head->next;head->pre = NULL;free(p);}else if (p->next == NULL){q = p->pre;q->next = NULL;free(p);}else{q = p->pre;q->next = p->next;free(p);}}print(head);return head;}//双向链表插入结点dnode *insert(dnode * head, int num){dnode *p = head;dnode *q = head;q = (dnode*)malloc(sizeof(dnode));q->data = num;while (p->next&&q->data>p->data){p = p->next;}if (p->data<q->data){p->next = q;q->pre = p;q->next = NULL;}else{if (p == head){q->next = head;q->pre = NULL;head = q;}else{p->pre->next = q;q->pre = p->pre;q->next = p;}}print(head);return head;}int main(){dnode * head = create();head = insert(head, 7);head = del(head, 7);};
0 0
- C/C++ 知识点回顾 双向链表的创建、插入和删除
- c/c++ 双向链表 创建 插入 删除
- 用c语言完成一个双向链表的创建,插入,删除
- C语言---双向链表的插入、删除、查找操作
- C语言---双向链表的插入、删除、查找操作
- 双向链表的创建/插入/删除
- C语言实现双向链表删除、插入、双向输出
- 双向链表 C语言 (创建,插入,删除,判空,返回链表长度)
- 双向链表的插入和删除
- 【C】单向链表和双向链表的插入
- C语言实现双向链表插入,删除
- c语言链表的创建、插入、删除、排序
- 双向链表创建、插入、删除
- 双向循环链表的创建,插入与删除。
- 双向循环链表的创建,插入,删除操作
- 双向循环链表的创建修改插入删除操作
- C++实现双向链表的创建,插入,修改,删除
- 单链表,双向链表的插入,查询,创建,删除,输出
- 海思Hi3518e第二步
- 找不到 net.sf.json.JSONObject; ---- jsonObject 需要在 pom 中添加的 maven 依赖
- 关于servlet的@WebServlet注解。
- Flume日志收集分层架构应用实践
- linux--网络错误
- C/C++ 知识点回顾 双向链表的创建、插入和删除
- 解决java使用jdbc连接hive2出现Required field 'client_protocol' is unset! Struct:TOpenSessionReq
- git使用详解
- OpenJudge-Mooc 323:棋盘问题(dfs)
- iOS之两圆之间标准圆的随机生成
- ubuntu 14.04 安装jekyll
- jsp访问mysql数据库方式
- 关于vitualbox报错
- php生成验证码并显示在浏览器