C/C++单链表的一些操作
来源:互联网 发布:java中级工程师就业班 编辑:程序博客网 时间:2024/06/03 20:27
LINK_List.h
#pragma once#include<iostream>#include<fstream>using namespace std;typedef struct Nodex{ char s_ch; int s_x, s_y; double s_f, s_h, s_g; bool s_visit; Nodex *s_pre; Nodex(){ s_visit = 0; s_pre = NULL; }}Node;typedef struct ListNode{ Node element; struct ListNode *next;}LinkList;void Init_list(LinkList *&L);bool List_empty(LinkList *L);void insert_List(LinkList *&L, int i, Node e);bool deleteOne_List(LinkList *&L, int i);int Length_List(LinkList *L);void display_List(LinkList *L);void destroy_List(LinkList *L);
LINK_List.cpp
#include"stdafx.h"#include"LINK_List.h"void Init_list(LinkList *&L){ L = (LinkList *)malloc(sizeof(LinkList)); L->next = nullptr;}bool List_empty(LinkList *L){ return(L->next == nullptr);}int Length_List(LinkList *L){ int n = 0; LinkList *p = L; while (p->next != nullptr) { n++; p = p->next; } return n;}void insert_List(LinkList *&L, int i, Node e)//当插入的元素的位置大于链表长度时,直接插入到最后{ int j = 0; LinkList*p = L,*s; while (p->next != nullptr&&j<i-1) { p = p->next; j++; } s = (LinkList *)malloc(sizeof(LinkList)); s->next = nullptr; s->element = e; s->next = p->next; p->next = s;}bool deleteOne_List(LinkList *&L,int i)//第0个元素为表头,不能删除{ int j = 0; LinkList*p = L, *q=L; if (i == 0)return -1; while (p->next != nullptr&&j<i) { q = p; p = p->next; j++; } q->next = p->next; free(p); return 0;}void display_List(LinkList *L){ LinkList*p = L->next; while (p != nullptr) { cout << p->element.s_f << " " << p->element.s_g << endl; p = p->next; }}void destroy_List(LinkList *L){ LinkList*pre = L, *p = L->next; if (p != nullptr) { free(pre); pre = p; p = pre->next; } free(pre);}
// Linklist_Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include"LINK_list.h"LinkList *link_test;Node node_test;int main(){ int x; Init_list(link_test); for (int i = 0; i < 5; i++) { cin >> x; node_test.s_f = x; insert_List(link_test,10, node_test); } display_List(link_test); node_test.s_f = 10; insert_List(link_test, 1, node_test); display_List(link_test); deleteOne_List(link_test, 0); display_List(link_test); system("Pause"); return 0;}
0 0
- C/C++单链表的一些操作
- C语言单链表的一些操作
- c一些经典的操作
- c字符串的一些操作
- 一些c的字符串操作
- C语言数据结构单链表的一些基本操作
- C语言 链表的一些操作
- C的一些基本指针操作
- c语言位操作的一些注意事项
- C的一些基本指针操作
- C中的一些关于字符串的操作
- Pro*C的一些基本操作
- C语言的一些简单操作
- [C#]窗口的一些简单操作
- C 关于链表的一些操作
- C 中内存的一些操作
- C语言中单链表的一些操作
- 单链表的操作(C#)
- 欧姆龙PLC modbusRTU通讯解析(CP1E)
- js对cookie基本使用
- 动态规划--最长上升子序列
- 暑假集训第三周周三赛 STL D - 产生冠军
- webView使用细节
- C/C++单链表的一些操作
- uva 129 - Krypton Factor
- Object对象详解(三)之hashCode与equals
- 基于linux下的变量声明declare的用法
- FTP服务器访问方法
- c++ 控制台流和字符串流
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新......)
- android 百度地图API 使用Marker和InfoWindow
- 嵌入式软件开发——汇顶 笔试 一面 二面