数组实现的单链表的初始化 插入 删除
2017-02-12 16:26
253 查看
#include<stdio.h>
#define Maxroom 100
typedef struct User_type
{
}User_type;
typedef struct cursor
{
User_type data;
int cur;
}cursor;
//初始化
void initList(cursor *List);
//插入
void insertList(cursor *List,int Index,User_type data);
//删除
void deletList(cursor *List,int Index);
void deletList(cursor *List,int Index)
{
int i;
if(Index>=List[0].cur||Index<1)
{
printf("error");
}
else
{
if(Index>1)
{
List[Index-1].cur=List[Index].cur;
}
else
{
List[Maxroom-1].cur=List[Index].cur;
}
}
}
void initList(cursor *List)
{
int i;
for(i=0;i<Maxroom-1;i++)
{
List[i].cur=i+1;
}
}
void insertList(cursor *List,int Index,User_type data)
{
int i;
if(Index<Maxroom&&Index>0&&Index<List[0].cur)
{
List[List[0].cur].data=data;
if(Index>1)
{
List[List[0].cur].cur=List[Index-1].cur;
List[Index-1].cur=List[0].cur;
List[0].cur++;
}
else if(Index==1)
{
List[List[0].cur].cur=List[Maxroom-1].cur;
List[Maxroom-1].cur=List[0].cur;
List[0].cur++;
}
}
else
{
printf("error");
}
}
int main()
{
cursor List[Maxroom];
}
#define Maxroom 100
typedef struct User_type
{
}User_type;
typedef struct cursor
{
User_type data;
int cur;
}cursor;
//初始化
void initList(cursor *List);
//插入
void insertList(cursor *List,int Index,User_type data);
//删除
void deletList(cursor *List,int Index);
void deletList(cursor *List,int Index)
{
int i;
if(Index>=List[0].cur||Index<1)
{
printf("error");
}
else
{
if(Index>1)
{
List[Index-1].cur=List[Index].cur;
}
else
{
List[Maxroom-1].cur=List[Index].cur;
}
}
}
void initList(cursor *List)
{
int i;
for(i=0;i<Maxroom-1;i++)
{
List[i].cur=i+1;
}
}
void insertList(cursor *List,int Index,User_type data)
{
int i;
if(Index<Maxroom&&Index>0&&Index<List[0].cur)
{
List[List[0].cur].data=data;
if(Index>1)
{
List[List[0].cur].cur=List[Index-1].cur;
List[Index-1].cur=List[0].cur;
List[0].cur++;
}
else if(Index==1)
{
List[List[0].cur].cur=List[Maxroom-1].cur;
List[Maxroom-1].cur=List[0].cur;
List[0].cur++;
}
}
else
{
printf("error");
}
}
int main()
{
cursor List[Maxroom];
}
相关文章推荐
- 双向链表的功能实现:初始化,插入,按位置插入,按位置删除,按值删除,遍历打印等
- 数组的链表实现:创建(头插/尾插)、打印、删除、插入
- 链表的初始化、遍历、删除、插入、判断是否为空、求长度 C语言实现
- 实现链表的初始化,按值查找,插入,删除
- 循环链表 实现对循环链表的初始化,创建,插入,删除,输出操作
- 利用线性链表实现 初始化、插入数据、查看数据、删除数据、链表逆序、清除和销毁数据链表的功能
- 实现链表的初始化,按值查找,插入,删除
- C语言实现链表的创建,初始化,插入,删除,查找
- 【回忆c语言】从指针的定义初始化到链表的插入删除排序实现code
- 链表(LinkList)的设计与实现(初始化,创建,插入,删除,逆置)
- 链表自实现:插入,删除
- 如何使用c语言实现双向链表的插入删除操作
- 双链表的定义、初始化、插入、删除,C++代码实现的算法
- 实现双向链表删除一个节点P,在节点P后插入一个节点
- 单链表相关操作之C语言实现:插入,删除,倒转,复制,查找。。。
- 排序算法集:冒泡、插入、希尔、快速(数组实现、链表实现)
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 排序算法集:冒泡、插入、希尔、快速(数组实现、链表实现)
- 链表C++实现插入、删除元素,链表逆序
- 排序算法集:冒泡、插入、希尔、快速(数组实现、链表实现)