数据结构之线性表(二)
来源:互联网 发布:java好学吗 编辑:程序博客网 时间:2024/05/21 10:58
线性表的链式存储结构之单链表
1.头文件NodeList.h
typedef int ElemType;typedef struct Node{ElemType data;struct Node *next;}ListNode,*LinkList;//单链表的创建void CreateListHead(LinkList &L,int n);//单链表的删除int ListDelete(LinkList &L,int n);//单链表的插入int ListInsert(LinkList &L,int n,ElemType e);//单链表的读取int ListGetElem(LinkList L,int n);//单链表的销毁int ClearList(LinkList &L);//打印单链表void ListPrint(LinkList L,int n);
2.函数实现NodeList.cpp
#include <iostream>#include <time.h>#include <malloc.h>#include "NodeList.h"void CreateListHead(LinkList &L,int n){LinkList p,temp;int i;//srand(time(0));//初始化随机种子L=(LinkList)malloc(sizeof(ListNode));//先声明一个带头结点的单链表L->next=NULL;temp=L;for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(ListNode));//p->data=rand()%100+1;//生成100以内的数字p->data=i+1;p->next=NULL;temp->next=p;temp=p;}}int ListDelete(LinkList &L,int n){int i=1;ElemType data;LinkList q,p;q=L;while(q->next && i<n){q=q->next;i++;}if(q->next==NULL)return -1;p=q->next;q->next=p->next;data=p->data;free(p);return data;}int ListInsert(LinkList &L,int n,ElemType e){int i=1;LinkList q,p;q=L;while(q->next && i<n){q=q->next;i++;}if(q->next==NULL && i<n)return 0;else{p=(LinkList)malloc(sizeof(ListNode));p->data=e;p->next=q->next;q->next=p;return 1;}}int ListGetElem(LinkList L,int n){int i=1;LinkList p;p=L;while(p->next && i<n){p=p->next;i++;}if(p->next==NULL)return 0;elsereturn p->next->data; }int ClearList(LinkList &L){LinkList q,p;q=L->next;while(q){p=q->next;free(q);q=p;}L->next=NULL;return 1;}void ListPrint(LinkList L,int n){for(int i=0;i<n;i++){L=L->next;printf("%d\n",L->data);}printf("---------分割线-------------\n");}
3.主函数main.cpp
#include <iostream>#include "NodeList.h"int main(){int n=10,a,temp;LinkList L;//生成单链表CreateListHead(L,n);//打印单链表ListPrint(L,n);//删除指定结点a=ListDelete(L,9);//a为被删除结点值temp=(a==-1)?n:n-1;printf("%d\n",a);//打印单链表ListPrint(L,temp);//插入结点a=ListInsert(L,10,20);printf("%d\n",a);temp=(a==0)?temp:temp+1;//打印单链表ListPrint(L,temp);//获取链表指定元素a=ListGetElem(L,9);printf("%d\n",a);//清空链表a=ClearList(L);printf("%d\n",a);return 0;}
0 0
- 数据结构之线性表(二)
- (二)数据结构之线性表
- 数据结构(二) 线性结构之线性表
- 数据结构(二)--线性表
- [数据结构]线性表(二)
- 【数据结构】线性表(二)
- 数据结构(二)线性表
- Java数据结构(二):线性表之顺序表
- 大话数据结构学习之(二) 线性表
- 数据结构学习笔记(二)------------线性表之链式存储
- 基于C/C++语言数据结构之线性表(二)
- 数据结构线性表(二)之单链表读取、插入、删除
- 考研数据结构复习之线性表(二)
- 浅析数据结构之线性表<二>
- 2、数据结构笔记之二线性表
- 数据结构之线性结构(单链表)【二】
- <数据结构> 实验二 线性表的实验之二
- 数据结构(七)线性表(二)
- SQL 常用
- ffmpeg查找编解码器decoder,encoder的两个接口
- 从MVC到前后端分离 好文章转发
- jstl标签库的使用
- CAsyncSocket详解
- 数据结构之线性表(二)
- Android2.2 API中文文档——View
- monkey测试中日志分析和内存泄露分析
- 跟我一起学习windows驱动编程(引用计数、上下文空间)
- Andrew Ng机器学习(ML)入门学习笔记(二)
- linux系统中的简单拷贝文件代码
- 002 Add Two Numbers [Leetcode]
- CSS3动画功能 --- transition、transform、3D场景
- php static