C语言单链表实现19个功能完全详解

C语言单链表实现19个功能完全详解

ID:36537246

大小:60.74 KB

页数:8页

时间:2019-05-11

C语言单链表实现19个功能完全详解_第1页
C语言单链表实现19个功能完全详解_第2页
C语言单链表实现19个功能完全详解_第3页
C语言单链表实现19个功能完全详解_第4页
C语言单链表实现19个功能完全详解_第5页
资源描述:

《C语言单链表实现19个功能完全详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言单链表实现19个功能完全详解最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的。自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将要实现19个功能。到目前我只写了一半,先传上来,大家有兴趣的可以帮忙指正,谢谢在vs2010上面编译运行无错误。每天都会把我写的新代码添加到这个里面。直到此链表完成。#include"stdafx.h"#include"stdio.h"#include#include"string.h" typedef int elemType; /**

2、**********************************************************************//*            以下是关于线性表链接存储(单链表)操作的18种算法       */ /*1.初始化线性表,即置单链表的表头指针为空*//*2.创建线性表,此函数输入负数终止读取数据*//*3.打印链表,链表的遍历*//*4.清除线性表L中的所有元素,即释放单链表L中所有的结点,使之成为一个空表*//*5.返回单链表的长度*//*6.检查单链表是否为空,若为空则返回1,否则返回0*//*7.返回单

3、链表中第pos个结点中的元素,若pos超出范围,则停止程序运行*//*8.从单链表中查找具有给定值x的第一个元素,若查找成功则返回该结点data域的存储地址,否则返回NULL*//*9.把单链表中第pos个结点的值修改为x的值,若修改成功返回1,否则返回0*//*10.向单链表的表头插入一个元素*//*11.向单链表的末尾添加一个元素*//*12.向单链表中第pos个结点位置插入元素为x的结点,若插入成功返回1,否则返回0*//*13.向有序单链表中插入元素x结点,使得插入后仍然有序*//*14.从单链表中删除表头结点,并把该结点的值返回,若删除失

4、败则停止程序运行*//*15.从单链表中删除表尾结点并返回它的值,若删除失败则停止程序运行*//*16.从单链表中删除第pos个结点并返回它的值,若删除失败则停止程序运行*//*17.从单链表中删除值为x的第一个结点,若删除成功则返回1,否则返回0*//*18.交换2个元素的位置*//*19.将线性表进行快速排序*/  /************************************************************************/typedef struct Node{   /*定义单链表结点类型*/    el

5、emTypeelement;    Node*next;}Node;  /*1.初始化线性表,即置单链表的表头指针为空*/void initList(Node**pNode){    *pNode=NULL;    printf("initList函数执行,初始化成功");} /*2.创建线性表,此函数输入负数终止读取数据*/Node*creatList(Node*pHead){    Node*p1;    Node*p2;     p1=p2=(Node*)malloc(sizeof(Node));//申请新节点    if(p1==NUL

6、L

7、

8、p2==NULL)    {        printf("内存分配失败");        exit(0);    }    memset(p1,0,sizeof(Node));     scanf("%d",&p1->element);   //输入新节点    p1->next=NULL;        //新节点的指针置为空    while(p1->element>0)       //输入的值大于0则继续,直到输入的值为负    {        if(pHead==NULL)      //空表,接入表头        { 

9、           pHead=p1;        }        else                       {            p2->next=p1;      //非空表,接入表尾        }        p2=p1;        p1=(Node*)malloc(sizeof(Node));   //再重申请一个节点        if(p1==NULL

10、

11、p2==NULL)        {        printf("内存分配失败");        exit(0);        }      

12、  memset(p1,0,sizeof(Node));        scanf("%d",&p1->element);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。