【数据结构】表之链表
2016-05-15 16:35
573 查看
1.单链表的几大功能
【1】头插法创建【2】尾插法创建
【3】显示
【4】销毁
2.见程序
#include <iostream> #include <malloc.h> using namespace std; typedef int ElemType; typedef struct Lnode { ElemType data; struct Lnode *next; }LinkList; void CreateLinkListF(LinkList*&L,ElemType a[],int n);//头插法创建单链表 void CreateLinkListR(LinkList* &L,ElemType a[],int n);//尾插法创建单链表 void DisplayLinkList(LinkList*L);//链表的显示 void DestroyLinkList(LinkList*&L);//链表的销毁 int main() { ElemType a[10] = {1,2,3,6,4,4,12,3,6,11}; LinkList* L; CreateLinkListF(L,a,10);//测试链表的头插法创建 DisplayLinkList(L);//测试 链表的显示 CreateLinkListR(L,a,10);//测试尾插法创建链表 DisplayLinkList(L);//测试 链表的显示 DestroyLinkList(L);//测试销毁链表 system("pause"); return 0; } void CreateLinkListF(LinkList*&L, ElemType a[], int n) { L = (LinkList*)malloc(sizeof(LinkList)); L->next = NULL; LinkList* s; for (int i = 0; i < n; i++) { s = (LinkList*)malloc(sizeof(LinkList)); s->data = a[i]; s->next = L->next; L->next = s; } } void DisplayLinkList(LinkList*L) { LinkList* p = L->next; while (p != NULL) { cout << p->data << " "; p = p->next; } cout << endl; } void DestroyLinkList(LinkList*&L) { LinkList*p = L; LinkList* q = p->next; while (q != NULL) { free(p); p = q; q = p->next; } free(p); } void CreateLinkListR(LinkList* &L, ElemType a[], int n) { LinkList*s, *r; L = (LinkList*)malloc(sizeof(LinkList)); L->next = NULL; r = L; for (int i = 0; i < n; i++) { s = (LinkList*)malloc(sizeof(LinkList)); s->next = NULL; s->data = a[i]; r->next = s; r = s; } //r->next = NULL; }
3.结果
相关文章推荐
- [C/C++]反转链表
- C#数据结构之顺序表(SeqList)实例详解
- C#实现基于链表的内存记事本实例
- Lua教程(七):数据结构详解
- C#模拟链表数据结构的实例解析
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法