王道c语言ch11-单链表的新建、插入、删除例题

03-22 阅读 0评论

王道c语言ch11-单链表的新建、插入、删除例题

#include 
#include 
#define END 33
typedef int ElemType;
typedef struct LNote {
    ElemType data;
    struct LNote *next;
} LNote, *LinkList;
//头插法
void list_head_insert(LinkList &L) {
    ElemType x;
    L = (LinkList) malloc(sizeof(LNote));
    L->next = NULL;
    scanf("%d", &x);
    while (x != END) {
        LinkList s = (LinkList) malloc(sizeof(LNote));
        s->data = x;
        s->next = L->next;
        L->next = s;
        scanf("%d", &x);
    }
}
//尾插法
void list_tail_insert(LinkList &L) {
    ElemType x;
    L = (LinkList) malloc(sizeof(LNote));
    L->next = NULL;
    scanf("%d", &x);
    LinkList s,r=L;
    while (x != END) {
        s = (LinkList) malloc(sizeof(LNote));
        s->data = x;
        r->next = s;
        r=s;
        scanf("%d", &x);
    }
    r->next=NULL;
}
//打印单链表中所有结点的值
void list_print(LinkList P){
    P=P->next;
    while (P!=NULL){
        printf("%d   ",P->data);
        P=P->next;
    }
    printf("\n");
}
//按位查找,返回结点
LinkList GetElem(LinkList L,int post){
    if (post
        return NULL;
    }
    for (int i = 0; i next;
        if(L->data == data){
            return L;
        }
    }
    return NULL;
}
//往post的位置插入结点
bool InsertElem(LinkList L,int post,ElemType InsertData){
    LinkList ret = GetElem(L,post-1);
    if (ret){
        LinkList s=(LinkList) malloc(sizeof (LNote));
        s->data=InsertData;
        s->next=ret->next;
        ret->next=s;
        return true;
    } else{
        return false;
    }
}
//删除结点
bool ListDelete(LinkList L,int i){  //不改变头结点,则不用加引用
    LinkList p= GetElem(L,i-1); //i=1,返回头指针
    //当inext;会报错
    if(NULL==p){
        return false;
    }
    LinkList q=p->next;  //不直接q->next=q->next->next;是为了释放删掉的结点内存
    if(NULL==q){ //删除结点不存在
    	return false;
    }
    p->next=q->next;
    free(q);
    q=NULL;//避免野指针
    return true;
};
int main() {
    LinkList L;
    list_tail_insert(L);
    bool ret = InsertElem(L,2,66);{
        if (ret){
            printf("insert is ture");
        } else{
            printf("insert is fault");
        }
    }
    list_print(L);
    LinkList search = GetElem(L,2);
    if(search){
        printf("function of GetElem return %d\n",search->data);
    } else{
        printf("function of GetElem return null\n");
    }
    LinkList getdata = LocateElem(L,2);
    if(getdata){
        printf("function of LocateElem return %d\n",getdata->data);
    } else{
        printf("function of LocateElem return null\n");
    }
    ListDelete(L,4);list_print(L);
    return 0;
}

clion快捷键:

王道c语言ch11-单链表的新建、插入、删除例题,王道c语言ch11-单链表的新建、插入、删除例题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,删除,打印,内存,第1张
(图片来源网络,侵删)

alt+1 打开文件列表 ​​​

alt+7 查看函数列表

ctrl shift ± 打开/折叠所有函数

王道c语言ch11-单链表的新建、插入、删除例题,王道c语言ch11-单链表的新建、插入、删除例题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,删除,打印,内存,第2张
(图片来源网络,侵删)
王道c语言ch11-单链表的新建、插入、删除例题,王道c语言ch11-单链表的新建、插入、删除例题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,删除,打印,内存,第3张
(图片来源网络,侵删)

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]