数据结构(C语言版)严蔚敏--->操作链表的一些算法(持续更新中。。。)

Posted 坚持不懈的大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版)严蔚敏--->操作链表的一些算法(持续更新中。。。)相关的知识,希望对你有一定的参考价值。

1. 链式存储结构上实现直接插入

参考代码:

void InsertSort(LinkList &L)
    LNode *p1 = L->next,*p,*q;
    ElemType d;
    while(p1)
        if(p1->next)
            q = p1->next;
            p = L->next;
            while(p!=q)
                if(q->data < p->data)
                    d = p->data;
                    p->data = q->data;
                    q->data = d;
                
                p = p->next;
            
        
        p1 = p1->next;
    

基本实现思路:需要用到两个循环,第一个循环起遍历作用吧!第二个循环起排序作用吧!直接变换链表里的数据,不操作它们的指针(操作它们的指针应该也是可以实现的,但是毕竟会复杂一些)。
运行结果:

2. 链式存储结构上实现冒泡排序

参考代码:

void BuddleSort(LinkList &L)
    LNode *p = L->next,*q1,*q2;
    ElemType temp;
    while(p)
        q1 = L->next;
        while(q1 &&q1->next)
            q2 = q1->next;
            if(q1->data >q2->data)
                temp = q1->data;
                q1->data = q2->data;
                q2->data = temp;
            
            q1 = q1->next;
        
        p = p->next;
    


运行结果:

3. 链式存储结构上实现选择排序

参考代码:

void SelectSort(LinkList &L)
    LNode *p = L->next,*q;
    ElemType temp;
    while(p)
        if(p->next)
            q = p->next;
            while(q)
                if(q->data < p->data)
                    temp = q->data;
                    q->data = p->data;
                    p->data = temp;
                
                q = q->next;
            
        
        p = p->next;
    

运行结果:

以上是关于数据结构(C语言版)严蔚敏--->操作链表的一些算法(持续更新中。。。)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构笔记(C语言版)严蔚敏

《数据结构:c语言版》(严蔚敏)知识点整合

数据结构(C语言版)严蔚敏->单链表的定义及合并两个有序单链表

数据结构(C语言版)严蔚敏->顺序表的定义及合并顺序表

数据结构(C语言版)严蔚敏->顺序表的定义及合并顺序表

谁有《数据结构》(C语言版)严蔚敏,清华大学2005年的课本?麻烦把目录告知,非常感谢