单链表的简单实现
2014-07-25 15:03
134 查看
数据结构课程中,单链表的简单实现以及一些简单操作的测试。
运行结果:
//单链表的简单实现 #include <iostream> #include <stdlib.h> #define MaxSize 50 #define ElemType char using namespace std; //结构定义 typedef struct LNode { ElemType data; struct LNode *next; }LinkList; //头插法构造单链表 void CreateListF(LinkList *&L,ElemType a[],int n) { LinkList *s; int i; L=(LinkList*)malloc(sizeof(LinkList)); L->next=NULL; for(i=0;i<n;i++) { s=(LinkList*)malloc(sizeof(LinkList)); s->data=a[i]; s->next=L->next; L->next=s; } } //尾插法构造单链表 void CreateListR(LinkList *&L,ElemType a[],int n) { LinkList *s,*r; int i; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; r=L; for(i=0;i<n;i++) { s=(LinkList*)malloc(sizeof(LinkList)); s->data=a[i]; s->next=NULL; r->next=s; r=s; } } //定位元素 int LocateElem(LinkList *L,ElemType e) { LinkList *p=L->next; int n=1; while(p!=NULL&&p->data!=e) { n++; p=p->next; } if(p==NULL) return 0; else return n; } //插入元素 int Insert(LinkList *&L,ElemType e,int i) { int j=1; LinkList *s,*pre=L,*p=pre->next; while(p!=NULL&&j!=i) { j++; pre=p; p=p->next; } if(p==NULL&&j!=i) return 0; else { s=(LinkList*)malloc(sizeof(LinkList)); s->data=e; s->next=p; pre->next=s; return 1; } } //删除操作 int Delet(LinkList *&L,ElemType e) { LinkList *pre=L,*p=pre->next; while(p!=NULL&&p->data!=e) { pre=p; p=p->next; } if(p==NULL) return 0; else { pre->next=p->next; free(p); return 1; } } int main() { ElemType a[10]={'d','g','w','v','h','k','e','w','t','u'}; LinkList *L ; CreateListF(L,a,10); LinkList *p=L->next; cout<<"构造好之后的链表中的元素为:"; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; cout<<"h在链表的位置为:"<<LocateElem(L,'h')<<endl; Insert(L,'p',4 ); cout<<"在位置4处插入'p'后链表的元素为:"; p=L->next; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; Delet(L,'t'); cout<<"删除元素't'之后的链表元素为:"; p=L->next; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; }
运行结果:
相关文章推荐
- 单链表c++简单模板实现
- 一个单链表C++简单的实现版本-转自chinaunix
- 单链表的简单实现
- java语言实现简单单链表链式储存结构。插入删除等操作。(有个地方看不出错误来,已经标注,望指正)
- 简单实现单链表
- C语言实现简单单链表
- 数据结构——单链表的简单实现
- Python 使用单链表实现简单的稀疏矩阵
- 单链表的C语言简单实现
- Python单链表简单实现代码
- 单链表的简单实现
- 【用java简单的实现单链表的基本操作】
- 用java简单的实现单链表的基本操作
- 单链表的简单c++实现
- java数据结构之单链表的简单实现
- Javascript实现单链表简单操作
- C语言单链表简单实现
- Python单链表的简单实现方法
- 简单的单链表<实现单链表的增删查改逆序和寻找中间节点>
- Python单链表简单实现代码