动态链表实现(待完善)
2015-09-20 15:58
381 查看
#include<iostream>
using namespace std;
struct node///定义节点结构
{
int data;
struct node *next;
}node;
typedef struct node *linklist;
void init_list(linklist L)///初始化链表
{
L.next->next=NULL;
}
int Size(linklist L)///返回链表的长度
{
linklist q;
q=L.next;
int i=0;
while(q->next!=NULL)
{
i++;
q=q->next;
}
return (i);
}
int Back(linklist L)///返回链表最后一个元素值
{
linklist q;
q->L.next;
if(q->next==NULL)
return (0);
while(q->next!=NULL)
q=q->next;
return q->data;
}
(仔细看)
int Clear(listlist L)///清空链表
{
linklist q=L->next;
if(q->next==NULL)
return (0);
while(q->next!=NULL)
{
q=q->next;
delete q;
}
L->next->next=NULL;
}
bool Empty(linklist L)///判断链表是否为空
{
if(L->next!=NULL)
return (1);
else
return (0);
}
int Erase(listlist L,int n)///删除链表中的第n个元素
{
if(n>Size(L))
return (0);
linklist q,k;
q=L->next;
for(int i=1; i<n; i++)
{
k=q;
q=q->next;
}
q=q->next;
delete q;
k=q;
}
int Front(listlist L)///返回链表的第一个元素值
{
if(Empty(L))
return (-1);
else
return L->next->next->data;
}
int Insert(linklist L,int n,int e)///在链表的第n个元素后插入元素e
{
if(n>Size(L))
return (0);
linklist q;
for(int i=1; i<n; i++)
q=q->next;
linklist k;
k=new node;
k->data=e;
k->next=q->next;
q->next=k;
}
int main()
{
return (0);
}
using namespace std;
struct node///定义节点结构
{
int data;
struct node *next;
}node;
typedef struct node *linklist;
void init_list(linklist L)///初始化链表
{
L.next->next=NULL;
}
int Size(linklist L)///返回链表的长度
{
linklist q;
q=L.next;
int i=0;
while(q->next!=NULL)
{
i++;
q=q->next;
}
return (i);
}
int Back(linklist L)///返回链表最后一个元素值
{
linklist q;
q->L.next;
if(q->next==NULL)
return (0);
while(q->next!=NULL)
q=q->next;
return q->data;
}
(仔细看)
int Clear(listlist L)///清空链表
{
linklist q=L->next;
if(q->next==NULL)
return (0);
while(q->next!=NULL)
{
q=q->next;
delete q;
}
L->next->next=NULL;
}
bool Empty(linklist L)///判断链表是否为空
{
if(L->next!=NULL)
return (1);
else
return (0);
}
int Erase(listlist L,int n)///删除链表中的第n个元素
{
if(n>Size(L))
return (0);
linklist q,k;
q=L->next;
for(int i=1; i<n; i++)
{
k=q;
q=q->next;
}
q=q->next;
delete q;
k=q;
}
int Front(listlist L)///返回链表的第一个元素值
{
if(Empty(L))
return (-1);
else
return L->next->next->data;
}
int Insert(linklist L,int n,int e)///在链表的第n个元素后插入元素e
{
if(n>Size(L))
return (0);
linklist q;
for(int i=1; i<n; i++)
q=q->next;
linklist k;
k=new node;
k->data=e;
k->next=q->next;
q->next=k;
}
int main()
{
return (0);
}
相关文章推荐
- Movies which Impressed Me
- Linux(putty)的基本的操作
- 机房收费系统详细设计说明书
- MFC使用TransparentBlt透明贴图
- Socket调用方式(同步,异步,阻塞,非阻塞)
- 对git的认识
- Fragment 深究
- 模板函数 c++
- PorterDuff.Mode
- python字符串
- 解决QWidget: Must construct a QApplication before a QPaintDevice错误
- ARCH+KDE开机自动执行脚本。
- 感悟
- 我的感想
- Android服务之Service(其一)
- linux常用命令(39):lsof 命令
- HDU 2796 线段树
- autoconfig配置工具使用
- 关于foreach遍历
- 分布式服务框架:Zookeeper