鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

第十六讲 线性表11(视频+课件+源代码)

  [复制链接]
发表于 2017-2-6 18:48:13 | 显示全部楼层
122691411 发表于 2017-2-6 18:47
//用鱼币买了课件为了验证看到视频里面的错误。。。
小甲鱼老师, 您在使用快指针和慢指针 获取单链表中间 ...

,, 由于不能截图,,, 所以只能这样了,,。尬

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-9 09:35:44 | 显示全部楼层
请问这个代码在VC++6.0里边能执行吗?为啥我在VC++6.0里边  不认识这个 malloc函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-9 20:55:36 | 显示全部楼层
我这哪里不对呢?求解,为什么就是出不来。

#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2

typedef int Status;
typedef int ElemType;

typedef struct LNode
{
        ElemType data;
        struct LNode *next;

}LNode,*LinkList;

//函数原型说明
Status InitList(LinkList &L);
void CreateListTail(LinkList &L,int n);
Status GetElem(LinkList L,int i,ElemType &e);
int printf(LinkList L);
Status GetMidNode(LinkList L,ElemType &e);
int ListLength(LinkList L);




Status InitList(LinkList &L)  //创造一个空的单链表

{
        L=(LinkList)malloc(sizeof(LNode));
        if(!L)
                exit(OVERFLOW);
        L->next=NULL;
        return OK;

}//InitList
void CreateListTail(LinkList &L,int n) //按照尾插法随机插入n个元素
{
        LinkList p,r;
        int i;
        srand(time(0));
        L=(LinkList)malloc(sizeof(LNode));
        r=L;
        for(i=1;i<=n;i++)
        {
                p=(LinkList)malloc(sizeof(LNode));
                p->data=rand()%100+1;
                r->next=p;
                r=p;
        }
        r->next=NULL;

}
int ListLength(LinkList L)  //单链表的长度
{
        int i=0;
        LinkList p=L->next;
        while(p)
        {
                p=p->next;
                i++;
        }
        return i;
}
Status GetElem(LinkList L,int i,ElemType &e) //返回第i个元素
{
        if(!L)
                return ERROR;
        LinkList p;
        int j;
        p=L->next;
       
        while(p&&j<i)
        {

                p=p->next;
                j++;
        }
        if(!p||j>i)
                return ERROR;
        e=p->data;
        return OK;

}//GetElem


int printf(LinkList L)  //输出单链表的元素
{
        if(!L)
                return ERROR;
        LinkList p;
        p=L->next;
        while(p!=NULL)
        {
                printf("%d",p->data);
                p=p->next;
        }
        return OK;
}//output

Status GetMidNode(LinkList L,ElemType &e)//查找中间元素
{
        if(!L)
                return ERROR;
        LinkList mid,search;
        mid=search=L->next;
        while(search->next->next!=NULL)
        {
                mid=mid->next;
                search=search->next->next;
        }
        e=mid->data;
        return OK;

}
void main()
{
        LinkList L ;
        int i,n=6;
        int s;
        ElemType e;
        InitList(L);
        cout<<"请输入您选择的项目:"<<"1.创建链表\n"<<"2.查看链表\n"<<"3.链表长度\n"<<"4.中间元素\n"<<"0.退出\n";
        while(s!='0')
        {

     
    cin>>s;
        switch(s)
        {
        case 1: CreateListTail(L,n); break;
        case 2: printf(L); break;
        case 3: ListLength(L); break;
        case 4: GetMidNode(L,e); break;
        case 0: exit(0);break;
        case 5: GetElem(L,i,e); break;
        }
        }
       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-13 21:26:25 | 显示全部楼层
0.0没钱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-20 08:40:22 | 显示全部楼层
鱼币怎么搞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-22 18:47:08 | 显示全部楼层
关盘多少钱呢》?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 12:51:03 | 显示全部楼层
怎么赚鱼币啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-19 13:58:32 | 显示全部楼层
非常感谢小甲鱼老师!!!!非常感谢小甲鱼老师!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-11 10:56:47 | 显示全部楼层
赚取鱼币,也是一种技巧啊!太贵,伤不起!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 16:46:40 | 显示全部楼层
这么贵的鱼币有点恶心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 12:05:57 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-4 17:46:19 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-22 14:55:40 | 显示全部楼层
可惜我没有鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-5 21:34:26 | 显示全部楼层
视频很不错  就是源码要VIP  学生党买不动啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-15 15:46:37 | 显示全部楼层
赞一个!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-30 21:11:01 | 显示全部楼层
好贵,需要鱼币下载!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-29 22:49:23 | 显示全部楼层
Status GetMidNode(LinkList L, ElemType *e)   // 这里只能用(*e),且不能拿这个函数直接返回e的值,原因不明
{
    LinkList search, mid;
    mid = search = L;

    while (search->next != NULL)
    {
        //search移动的速度是 mid 的2倍
        if (search->next->next != NULL)
        {
            search = search->next->next;
            mid = mid->next;
        }
        else
        {
            search = search->next;
        }
    }

    *e = mid->data;

    return OK;
}

。。。。。。

Status InitList(LinkList *L)    // 这里只能用(*L),原因未知;其他函数可以用L
{
    *L=(LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */

    if(!(*L)) /* 存储分配失败 */
    {
        return ERROR;
    }

    (*L)->next=NULL; /* 指针域为空 */

    return OK;
}
原程序中的这两个函数我标注原因不明的地方有问题,望老湿指点一二
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 18:51:17 | 显示全部楼层
刚学数据结构,看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-15 20:25:27 | 显示全部楼层
支持支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-13 15:06:50 | 显示全部楼层
小甲鱼棒棒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表