计蒜客 数据结构 链表 C++
来源:互联网 发布:2017年人工智能股票 编辑:程序博客网 时间:2024/05/17 21:07
//链表的插入insert()和删除delete_node()还有输出,翻转everse()#include<iostream>using namespace std;class Node {public: int data; Node* next; Node(int _data) { data = _data; next = NULL; }};class LinkList {private: Node* head;public: LinkList() { head = NULL; } void insert(Node* node,int index){ // 头指针为空,那么我们就让node成为头指针 if(head == NULL){ head = node; return; } //第二种特殊情况,就是如果插入节点后的位置是链表首位,也就是index等于0的时候。 if(index == 0){ //如果节点插入后是链表首位,那么先让node的指针指向当前表头head, //完成node的插入,然后让node成为头结点,完成表头的更新, //然后用return语句结束函数 node->next = head; head = node; return; } //*写在类名旁边,还是变量名旁边意思是相同的 Node *current_node = head; int count = 0; while(current_node->next != NULL && count < index -1){ current_node = current_node->next; count++; } if(count == index - 1){ node->next = current_node->next; current_node->next = node; } } void output(){ if(head == NULL){ return; } Node *current_node = head; while(current_node != NULL){ //节点数据的表示方式->data cout<<current_node->data<<" "; current_node = current_node->next; } //输出回车 cout<<endl; } void delete_node(int index){ if(head == NULL){ return; } Node* current_node = head; int count = 0; if(index == 0){ head = head->next; delete current_node; return; } while(current_node->next != NULL && count < index-1){ current_node = current_node->next; count = count + 1; } //找到指定的节点,还有检测是不是删除最后一个节点 if( count == index - 1 && current_node->next != NULL){ Node* delete_node = current_node->next; current_node->next = delete_node->next; delete delete_node; } } void reverse(){ if(head == NULL){ return; } Node *next_node, *current_node; current_node = head->next; head->next = NULL; while(current_node != NULL){ next_node = current_node->next; current_node->next =head; head = current_node; current_node = next_node; } }};int main() { LinkList linklist; for(int i = 1 ; i <= 10 ; i++){ Node *node = new Node(i); linklist.insert(node,i-1); } linklist.output(); linklist.delete_node(5); linklist.output(); linklist.reverse(); linklist.output(); return 0;}
0 0
- C语言数据结构----链表
- 数据结构(c++) 链表
- 数据结构--链表(C++)
- 链表(C语言数据结构)
- 数据结构,多项式运算,C++,链表
- 数据结构_2:链表:C语言
- 复习(数据结构):链表:c语言
- 复习(数据结构):链表:c++:标准
- 复习(数据结构):链表:c++:stl
- C++,数据结构
- 数据结构C
- 数据结构(C)
- 数据结构——链表(c++)
- C数据结构学习历程(2) 链表
- 数据结构_2:链表:C语言练习
- 数据结构(C语言):链表,约瑟夫问题
- 数据结构——链表C/C++实现
- C语言高级篇(数据结构) --- 链表
- java发送http的get、post请求
- vim插件管理器:Vundle的介绍及安装(很全)
- Android 初识网络之get/post方法演示
- 理解记忆:删除远程分支
- 文章标题
- 计蒜客 数据结构 链表 C++
- 【NOIP提高】种树
- 安装MySQL-python
- 安卓学习笔记---Android 手势监听学习总结
- MyEclipse8.5安装egit无效
- 安装pod与遇到的问题
- VIJOS-P1312 能量项链 【区间DP--矩阵连乘】
- iOS开发笔记>> 什么时候会报 Unrecognized selector 的异常?
- WPF 个人音乐播放器