线性表之单链表
来源:互联网 发布:fifo算法和lru算法 编辑:程序博客网 时间:2024/05/24 06:29
#include "stdafx.h"#include<iostream>using namespace std;#include<malloc.h>#define OK 1 //正确#define ERROR 0 //失败typedef int ElementType;typedef struct LNode{ //定义结构体 ElementType data; LNode *next;}LNode,*LinkList;//初始化单链表void init(LinkList &L,int n){ if(n<0) return ; L = (LinkList) malloc(sizeof(LNode)); L->next=NULL;//创建头指针 int data; LinkList node; for(int i=0;i<n;i++) { cin>>data; node = (LinkList) malloc(sizeof(LNode));//创建LNode的节点 node->data=data; node->next=L->next; L->next=node; }}//获取单链表第i个位置的元素eint getElement(LinkList &L,int i,ElementType &e){ LNode *p; int j=1; p=L->next; while(p && j<i) { p=p->next; ++j; } if(!p || j>i) { cout<<"没有找到位置序号"+i; return ERROR; } e=p->data; cout<<"单链表第"<<i<<"个位置的元素是:"<<e; return OK;}//删除单链表的第i个位置的元素void insert(LinkList &L,int i,ElementType &e){ LNode *p; int j=1; LinkList node; p=L; while(p && j<i) //寻找第i-1个节点 { p=p->next; ++j; } if(!p || j>i) { cout<<"插入的位置已经超出边界"<<endl; return; } node = (LinkList) malloc(sizeof(LNode));//创建LNode的节点 node->data=e; node->next = p->next; p->next = node;}//向单链表的第i个位置插入元素evoid delLink(LinkList &L,int i,ElementType &e){ LNode *p,*q; int j=1; LinkList node; p=L; while(p->next && j<i) //寻找第i节点,也可以寻找第i-1个节点 { p=p->next; ++j; } if(!(p->next)|| j>i) { cout<<"删除的位置不对"<<endl; return; } q=p->next; p->next=q->next; e=q->data; free(q);}//打印单链表的数据void print(LinkList &L){ LNode *p; p=L->next; while(p) { cout<<p->data<<" "; p=p->next; }}int main(int argc,char* argv[]){ LinkList L; ElementType e; int n; cout<<"请输入需要创建的链表长度: "<<endl; cin>>n; cout<<"请输入"<<n<<"个数据: "; init(L,n); cout<<"创建的链表为: "; print(L); cout<<endl; cout<<"请输入需要获取链表那个位置的元素: "; cin>>n; getElement(L,n,e); cout<<"请输入要插入元素的位置和数据: "; cin>>n; cin>>e; cout<<"插入后的单链表为:"<<endl; insert(L,n,e); print(L); cout<<"请输入要删除元素的位置: "; cin>>n; delLink(L,n,e); cout<<"删除后的单链表为:"<<endl; print(L); print(L); cin>>n; return OK;}
0 0
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 《线性表之单链表》
- 线性表之单链表
- 线性表之单链表
- 线性表之单链表
- 线性表实现之单链表
- 数据结构:线性表之单链表
- 数据结构线性表之单链表
- 线性表之单链表--SingleLinkedList
- 线性表结构之单链表
- 数据结构:线性表之单链表
- 数据结构-线性表之单链表
- c++ 构造函数
- c++ 单继承派生类的构造函数
- c++ 多重继承
- c++ 虚基类应用
- 线性表之顺序表的结构与实现
- 线性表之单链表
- sharepoint 2010 页面添加footer方法 custom footer for sharepoint 2010 master page
- 循环单链表的结构和定义
- 数据结构之循环双链表的结构和实现
- Java 的 FileFilter文件过滤,readline读行操作
- proxool数据库连接池框架
- bat 批处理变量
- 数据结构之栈的定义
- 数据结构之队列