一个简单的双向链表类--xixi
来源:互联网 发布:js让div显示隐藏 编辑:程序博客网 时间:2024/06/05 18:43
#include<stdlib.h>
#include<iostream.h>
typedef struct node
{
int data;
struct node *pre;
struct node *next;
}*LinkList,Lnode;
class DList
{
//定义一个结构体,做为链表的元素的结构类型。
LinkList Head;
public:
//定义一个链表
void CreateLinkList()
{
LinkList q,s;
q=(LinkList)malloc(sizeof(Lnode));
if(q == NULL)
{
//printf("In CreateLinkList p is null,wrong!/n");
cout<<"In CreateLinkList p is null,wrong!"<<endl;
return;
}
q->data=NULL;
q->next=NULL;
q->pre=NULL;
Head = q;
int x,flag=1;
//printf("input a node's data,0 to end:\n");
cout<<"input a node's data,0 to end:"<<endl;
while(flag!=0)
{
//scanf("%d",&x);
cin>>x;
if(x!=0)
{
s=(LinkList)malloc(sizeof(Lnode));
s->data=x;
s->next=NULL;
s->pre=q;
q->next=s;
q=s;
}
else
{
flag=0;
//break;
}
}
}
//打印链表的元素
void PrintLinkList()
{
LinkList q;
q=Head->next;
if(Head->next==NULL)
{
//printf("L is empty\n");
cout<<"DList is null!!"<<endl;
}
else
{
while(q!=NULL)
{
//printf("%d\n",q->data);
cout<<q->data<<endl;
q=q->next;
}
}
}
//计算链表的长度。
int LenthLinkList()
{
int count=0;
LinkList q;
q=Head->next;
while(q!=NULL)
{
count++;
if(q->next==NULL) break;
q=q->next;
}
return count;
}
//删除一个元素
void DeleteLinkList()
{
LinkList q;
q = Head->next;
if(q == NULL)
{
//printf("%s\n","DList is null!!");
cout<<"DList is null!!"<<endl;
return;
}
else
{
Head->next = q->next;
delete q;
}
}
};
忘了c++里面new函数怎么用的了,所以只能用malloc了。和delete匹配使用有点别扭哈,下次看看再改,今天要下班啦。
- 一个简单的双向链表类--xixi
- xixi
- xixi
- xixi
- xixi
- XIXI
- xixi
- 一个简单的双向链表
- 一个简单的双向循环链表的实现
- 双向链表的一个简单的例子
- 一个简单的双向链表的例子
- 一个比较(非常)简单的双向链表...
- php简单的双向队列
- xixi语录
- 一个简单的学生信息管理系统(循环双向链表)
- 一个简单的链表类
- 一个简单的链表类
- 双向链表的简单操作
- 堆排序详解(JAVA版)
- C++入门
- LU decomposition
- getElementById怎么调用
- 网页设计问题大搜集(有些细节的问题,很值得学习)
- 一个简单的双向链表类--xixi
- 自己编写的使时钟不连续的测试代码-fork---join_none用法以及停止线程
- 在Windows Phone中进行3D开发之五平移缩放
- 如何设置PHP cookie
- CentOS下Redis 2.2.14安装配置详解
- 更改 Android SDK 中 AVD 的位置
- strust中JSP页面通过JDBC操作数据库出现乱码,页面出现乱码问题
- xmlns
- 我们是政治侏儒