栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【2022.07.06】考研日记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【2022.07.06】考研日记

上午,660题,偏导数+全微分。
感觉我的二元微分比一元微分掌握得更好。同济高数上册(绿书)需要多加回顾,尤其是反常积分和微分方程。

下午,线代二轮复习+数据结构(双链表、循环链表、静态链表)。

晚上200单词+英语翻译+政治网课,今天没来得及写政治1000题。

积累代码:

【双向链表】

//【双向链表】初始化

typedef struct DNode{            		//定义双向链表结点类型
    ElemType data;               		//数据域
    struct DNode *prior, *next;  		//前驱和后继指针
}DNode, *DLinklist;

bool InitDLinkList(Dlinklist &L){
    L = (DNode *)malloc(sizeof(DNode));      //分配一个头结点
    if(L==NULL)                              //内存不足,分配失败
        return false;
    
    L->prior = NULL;   				//头结点的prior指针永远指向NULL
    L->next = NULL;    				//头结点之后暂时还没有结点
    return true;
}

void testDLinkList(){
    DLinklist L;         			//定义指向头结点的指针L
    InitDLinkList(L);    //申请一片空间用于存放头结点,指针L指向这个头结点
}

bool Empty(DLinklist L){
    if(L->next == NULL)    			//判断头结点的next指针是否为空
        return true;
    else
        return false;
}






//双向链表 后插法
bool InsertNextDNode(DNode *p, DNode *s){ 		//将结点*s插入到结点*p之后
    if(p==NULL || s==NULL) 						//非法参数
        return false;
    
    s->next = p->next;
    if (p->next != NULL)   			//p不是最后一个结点=p有后继结点  
        p->next->prior = s;
    s->prior = p;
    p->next = s;
    
    return true;
}






//双向链表删除结点
//删除p结点的后继结点
bool DeletNextDNode(DNode *p){
    if(p==NULL) return false;
    DNode *q =p->next;            //找到p的后继结点q
    if(q==NULL) return false;     //p没有后继结点;
    p->next = q->next;
    if(q->next != NULL)           //q结点不是最后一个结点
        q->next->prior=p;
    free(q);
    return true;
}
//销毁一整个双向链表
bool DestoryList(DLinklist &L){
    //循环释放各个数据结点
    while(L->next != NULL){
        DeletNextDNode(L);  		//删除头结点的后继结点
    free(L); 						//释放头结点
    L=NULL;  						//头指针指向NULL
    }
}

【循环单链表】

typedef struct LNode{            
    ElemType data;               
    struct LNode *next;  
}DNode, *Linklist;

//初始化一个循环单链表
bool InitList(LinkList &L){
    L = (LNode *)malloc(sizeof(LNode)); //分配一个头结点
    if(L==NULL)             			//内存不足,分配失败
        return false;
    L->next = L;            			//头结点next指针指向头结点
    return true;
}

//判断循环单链表是否为空(终止条件为p,或p->next是否等于头指针)
bool Empty(LinkList L){
    if(L->next == L)
        return true;    		//为空
    else
        return false;
}

//判断结点p是否为循环单链表的表尾结点
bool isTail(LinkList L, LNode *p){
    if(p->next == L)
        return true;
    else
        return false;
}

【循环双向链表】

typedef struct DNode{          
    ElemType data;               
    struct DNode *prior, *next;  
}DNode, *DLinklist;

//初始化空的循环双向链表
bool InitDLinkList(DLinklist &L){
    L = (DNode *) malloc(sizeof(DNode));    //分配一个头结点
    if(L==NULL)            					//内存不足,分配失败
        return false;  
    L->prior = L;          					//头结点的prior指向头结点
    L->next = L;           					//头结点的next指向头结点
}

void testDLinkList(){
    DLinklist L;
    InitDLinkList(L);
}

//判断循环双向链表是否为空
bool Empty(DLinklist L){
    if(L->next == L)
        return true;
    else
        return false;
}

//判断结点p是否为循环双向链表的表尾结点
bool isTail(DLinklist L, DNode *p){
    if(p->next == L)
        return true;
    else
        return false;
}

【静态链表】

#define MaxSize 10        //静态链表的最大长度

typedef struct{           //静态链表结构类型的定义
    ELemType data;        //存储数据元素
    int next;             //下一个元素的数组下标
}SLinkList[MaxSize];

void testSLinkList(){
    SLinkList a;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号