数据结构_单链表
来源:互联网 发布:c语言入门书籍 知乎 编辑:程序博客网 时间:2024/06/05 03:42
#include<iostream>
#include<cstdlib>
#include<iomanip>
using namespace std;
typedef struct LNode
{
int data;
LNode *next;
}LNode;
void InitList(LNode *&L)//初始化
{
L=new LNode;
L->data = 0;
L->next = NULL;
}
void CreateList_Head(LNode *L, int a[], int n)//头插法建表
{
LNode *p = NULL;
for(int i=0;i<n;++i )
{
p=new LNode;
p->data = a[i];
p->next = L->next;
L->next =p;
++L->data;
}
}
void CreateList_Tail(LNode *L, int a[], int n) //尾插法建表
{
LNode *p=NULL, *r=L;
for(int i=0;i<n;++i)
{
p=new LNode;
p->data = a[i];
p->next = NULL;
r->next = p;
r = p;
++L->data;
}
}
int ListInsert(LNode *L, int i, int e)//插入元素
{
int j=0;
LNode *p=L;
while( ++j<i &&NULL != p->next )
{
p = p->next;
}
if(j==i)
{
LNode *s=new LNode;
s->data = e;
s->next = p->next;
p->next =s;
++L->data;
return 1;
}
if(NULL == p->next)
return 0;
}
int ListDelete(LNode *L, int i, int &e) //删除元素
{
int j=0;
LNode *p=L;
while( ++j<i &&NULL != p->next )
{
p=p->next;
}
if(j==i)
{
LNode *q=p->next;
e = q->data;
p->next = q->next;
free(q);
--L->data;
return 1;
}
if(NULL == p->next)
{
return 0;
}
}
void PrintList(LNode *L)//打印单链表
{
LNode *p = L->next;
while(NULL != p)
{
cout<<setw(3)<<p->data;
p=p->next;
}
cout<<endl;
}
int main(void)
{
const int N=5;
LNode *L=NULL;
int a[] = {1,2,3,4,5};
InitList(L);
CreateList_Head(L,a,N);
PrintList(L);
ListInsert(L,1,10);
PrintList(L);
system("pause");
return 0;
}
#include<cstdlib>
#include<iomanip>
using namespace std;
typedef struct LNode
{
int data;
LNode *next;
}LNode;
void InitList(LNode *&L)//初始化
{
L=new LNode;
L->data = 0;
L->next = NULL;
}
void CreateList_Head(LNode *L, int a[], int n)//头插法建表
{
LNode *p = NULL;
for(int i=0;i<n;++i )
{
p=new LNode;
p->data = a[i];
p->next = L->next;
L->next =p;
++L->data;
}
}
void CreateList_Tail(LNode *L, int a[], int n) //尾插法建表
{
LNode *p=NULL, *r=L;
for(int i=0;i<n;++i)
{
p=new LNode;
p->data = a[i];
p->next = NULL;
r->next = p;
r = p;
++L->data;
}
}
int ListInsert(LNode *L, int i, int e)//插入元素
{
int j=0;
LNode *p=L;
while( ++j<i &&NULL != p->next )
{
p = p->next;
}
if(j==i)
{
LNode *s=new LNode;
s->data = e;
s->next = p->next;
p->next =s;
++L->data;
return 1;
}
if(NULL == p->next)
return 0;
}
int ListDelete(LNode *L, int i, int &e) //删除元素
{
int j=0;
LNode *p=L;
while( ++j<i &&NULL != p->next )
{
p=p->next;
}
if(j==i)
{
LNode *q=p->next;
e = q->data;
p->next = q->next;
free(q);
--L->data;
return 1;
}
if(NULL == p->next)
{
return 0;
}
}
void PrintList(LNode *L)//打印单链表
{
LNode *p = L->next;
while(NULL != p)
{
cout<<setw(3)<<p->data;
p=p->next;
}
cout<<endl;
}
int main(void)
{
const int N=5;
LNode *L=NULL;
int a[] = {1,2,3,4,5};
InitList(L);
CreateList_Head(L,a,N);
PrintList(L);
ListInsert(L,1,10);
PrintList(L);
system("pause");
return 0;
}
0 0
- 数据结构_单链表
- 数据结构_单链表
- 数据结构_单链表
- 数据结构_单链表
- 数据结构_单链表
- 数据结构_单链表
- c语言_数据结构_单链表
- 数据结构-线性表_单链表
- 数据结构-线性表_单链表
- (数据结构)线性表_单链表反转 _模仿
- 数据结构与算法_链表1_单链表
- 实战数据结构(1)_单链表的操作
- 数据结构_单链表实现选择排序
- 数据结构_单链表的建立与反转
- 数据结构_单链表的逆置
- 数据结构基础2_单链表的实现
- 【数据结构_链表_List_0954】单链表的链接
- 数据结构_单链表(带头节点)
- 关于android selector详解
- NDK 与 JNI 的关系
- HDU 5025
- 搭建Hadoop环境----CentOs安装和配置(一)
- 【Java.Web】Servlet —— 实例 之 下载文件
- 数据结构_单链表
- Java中Map接口(传智播客毕老师视频讲解)
- 如何看待「封锁 Google 第一案」的开庭审理?
- Big Little迁移之Idle-pull
- 数据结构笔试面试题
- ios 时间与字符串相互转换,包含时区的转换
- 黑马程序员——生产者和消费者问题
- jQuery筛选器children()
- Fragment的使用