单链表里,如果p->next为NULL,那么引用 p->next->next 会报错吗

单链表里,如果p->next为NULL,那么引用 p->next->next 会报错吗?还是相当于NULL?

3个回答

typedef struct Node
{
int Data;
NODE* next;
}NODE;
NODE a;
NODE p;
p->next = a;
p->next->next 相当于 a->next 这是ok的;
但当p->next = null,p->next->next 这是不存在的,null为空,又不是NODE类型,怎么会有next呢。所以这是会报错的

qq_33747112
李我远点 恩恩,谢谢您
接近 3 年之前 回复

这就是著名的空指针异常。

qq_33747112
李我远点 node *max(node *L) { node *p = L; node *q = (node*)malloc(sizeof(node)); q->next = NULL; int max = p->next->num; while(p->next != NULL) { if(max < p->next->num) { max = p->next->num; q->next = p->next; } q = q->next; } q->next->next = NULL; }这样呢?
接近 3 年之前 回复
qq_33747112
李我远点 哈哈、、显得我好无知。。
接近 3 年之前 回复

我空间里有list双向链表实现代码,可以参考下

qq_33747112
李我远点 好的,谢谢您
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
小白提问-关于单链表的插入-C语言
关于单链表的插入问题,尝试了很多次,不清楚问题出在哪,希望大牛能够帮助我指出代码中存在的问题,感激万分。 ``` #include<stdio.h> #include<stdlib.h> struct Link { int num; struct Link *next; }; void getInput(struct Link *num)//函数1 读入数据 { printf("input a number: "); scanf("%d", &num->num); } void rank_num(struct Link **link, struct Link *num)//函数2 排序插入 { struct Link *temp; struct Link *current; current = *link; while(num >= current->num || current->next != NULL) { if(current->next != NULL) { temp = current; current = current->next; } } if(current->next == NULL) { current->next = num; num->next = NULL; } else { temp->next = num; num->next = current; } } void printLink(struct Link *link)//函数3 打印结果 { while(link->next != NULL) { printf("%d ", link->num); link = link->next; } return; } void releaseLink(struct Link **link)//函数4 释放存储空间 { struct Link *temp; while(*link != NULL) { temp = *link; *link = (*link)->next; free(temp); } } int main()//主函数 main { struct Link *link = NULL; struct Link *num; num = (struct Link*)malloc(sizeof(struct Link)); for(int i=0; i<3; i++) { printf("请输入数据\n"); getInput(num); if(link != NULL) { rank_num(&link, num); } else { link = num; num->next = NULL; } } printLink(link); releaseLink(&link); return 0; } ```
C语言归并有序单链表的问题
自己写了一个归并两个有序单链表成为一个有序单链表的程序,奈何运行没有结果。 求教各位网友,本人学生,望不吝赐教。 ``` #include<stdio.h> #include<stdlib.h> typedef struct Node{ int data; struct Node *next; } Node; Node* creatNode(int i) { Node *a = (Node *)malloc(sizeof(Node)); a->data = i; a->next = NULL; return a; } void insert(Node* p,int k){ Node* insertion; insertion = creatNode(k); while(p->next!=NULL){ p = p->next; } p->next = insertion; } void merge(Node*a,Node*b,Node**c) { Node *p, *q; //p和q指针分别指向a和b中最小的元素 p = a->next; q = b->next; *c = a; free(b); while(p!=NULL&&q!=NULL){ if(p->data<=q->data){ insert(*c, p->data); p = p->next; } else{ insert(*c, q->data); q = q->next; } } while(p!=NULL){ insert(*c, p->data); p = p->next; } while(q!=NULL){ insert(*c, q->data); q = q->next; } } int main() { Node *a = creatNode(0); insert(a, 2); insert(a, 4); insert(a, 6); Node *b = creatNode(0); insert(b, 1); insert(b, 3); insert(b, 5); Node *c = creatNode(0); merge(a, b, &c); while(c!=NULL){ printf("%d\t", c->data); c = c->next; } getchar(); return 0; } ```
C语言 一元多项式的加法运算(单链表)
#include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct PNode { float coef; //系数 int expn; //指数 struct PNode *next; //指向下一项的指针 }PNode; //一元多项式中的项 struct PNode *creatPoly(PNode *head,int n) //建立一元多项式 { int i=1; struct PNode *s,*pre; head=(struct PNode *)malloc(sizeof(struct PNode)); head->next=NULL; pre=head; printf("请输入各项的系数与指数"); for(i=1;i<=n;i++) { scanf("%d%d",&pre->coef,&pre->expn); s=(struct PNode *)malloc(sizeof(struct PNode)); pre->next=s; pre=s; } pre->next=NULL; return 0; } struct PNode *addPoly(PNode *L1,PNode *L2) //实现多项式加法运算 { int sum; struct PNode *p1,*p2,*p3,*r; p3=p1; p1=p1->next; p2=p2->next; while(p1&&p2) { if(p1->expn==p2->expn) { sum=p1->coef+p2->coef; if(sum!=0) { p1->coef = sum; p3->next=p1; p3=p1; p1=p1->next; } else //(p3!=NULL) { r=p1; p1=p1->next; free(r); } r=p2; p2=p2->next; free(r); } else if (p1->expn < p2->expn && p3!=NULL) { p3->next=p1; p3=p1; p1=p1->next; } else //(p1->expn > p2->expn && p3!=NULL) { p3->next = p2; p3 = p2; p2 = p2->next; } } p3->next = p1 ? p1:p2; free(p2); return p1; } struct PNode *output(PNode *p) //打印该链表的结果 { while(p->next!=NULL) { printf("%d%2d",p->coef,p->expn); p=p->next; } printf(","); return 0; } int main() { int n,m; struct PNode *headA,*headB; printf("请输入多项式A的项数:"); scanf("%d",&n); creatPoly(headA,n); printf("输出多项式A:"); output(headA); printf("请输入多项式B的项数:"); scanf("%d",&m); creatPoly(headB,m); printf("输出多项式B:"); output(headB); addPoly(headA,headB); printf("输出两个多项式相加后的结果多项式A:"); return 0; } ![图片说明](https://img-ask.csdn.net/upload/202002/03/1580718627_581287.png) 哪位大神能帮忙看一下代码哪里出问题了吗?运行结果不正确,输出不了多项式的结果!谢谢
【求助】单链表建立与输出错误?
调用初始化链表函数及如下代码中InitLinkList(L,6)后,输入时进仅仅输入了3个元素就直接跳出了输出函数。 请大佬帮忙答疑!!! ![图片说明](https://img-ask.csdn.net/upload/202002/03/1580701163_301047.png) ``` #include<stdio.h> #include<stdlib.h> typedef struct LNode{ char data; struct LNode *next; }LNode, *LinkList; void InitLinkList(LinkList &L,int n){ L=(LinkList)malloc(sizeof (LNode)); L->next=NULL; LinkList head,tail,p; head=L; tail=L->next; printf("请输入链表元素\n"); for(int i=1;i<=n;i++){ p=(LinkList)malloc(sizeof(LNode)); scanf("%c",&p->data); head->next=p->next; head->next=p; head=head->next; printf("%c",p->data); } } void PutLinkList(LinkList &L){ printf("————链表如下————\n"); LinkList p=L->next; while(p){ printf("%c!",p->data); p=p->next; } } void main(){ LinkList L; InitLinkList(L,6); PutLinkList(L); } ```
请问如何才能打印出单链表中的元素的值?
#include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct LNode{ int data; struct LNode *next;//一个指向LNode类型结构的指针变量 (指针域) }LNode,*LinkList; //单链表初始化 int InitList_L(LinkList &L){ L = (LinkList)malloc( sizeof(LNode) ); L->next = NULL; //先建一个带头节点的单链表 printf("单链表初始化成功!\n"); return 0; } //头插法创建链表 int CreateList_L(LinkList &L,int n){ LinkList p;//起始位置 for(int i = n;i > 0;i--){ p = (LinkList)malloc( sizeof(LNode) ); //生成新结点 scanf("%d",p->data); p->next = L->next; L->next = p; } printf("创建成功!\n"); return 0; } //查找第i个元素 int GetElem_L(LinkList &L,int i){ LinkList p; p = L->next; int j = 1; int e; while(p && j < i){ p = p->next; j++; } if(!p || j > i){ printf("第%d个元素不存在\n",i); } e = p->data; printf("查找元素为:%d\n",e); return 0; } //第i个位置插入元素 int ListInsert_L(LinkList &L,int i,int e){ LinkList p = L; LinkList s; int j = 0; while(p && j < i-1){ p = p->next; j++; } if(!p || j > i-1){ printf("插入错误!\n"); } s = (LinkList)malloc( sizeof(LNode) ); s->data = e; s->next = p->next; p->next = s; printf("插入成功!\n"); return 0; } //删除第i个元素 int ListDelete_L(LinkList &L,int i){ LinkList p = L; LinkList q; int j = 0; int e; while( p->next && j < i-1 ){ p = p->next; j++; } if( !(p->next) || j > i-1 ){ printf("删除错误!\n"); } q = p->next; p->next = q->next; e = q->data; printf("删除成功!\n"); free(q); return 0; } //打印链表 int PrintList_L(LinkList &L){ LinkList p; p = L->next; if(p == NULL){ printf("这是一个空链表!\n"); } while(p){ printf("%d ",p->data); p = p->next; } printf("\n"); return 0; } int main(){ LinkList List; int n;//链表元素个数 int i;//链表元素位置 int e;//链表插入的元素 printf("输入链表元素个数:"); scanf("%d",&n); InitList_L(List); printf("输入链表:\n"); CreateList_L(List,n); printf("链表创建如下:\n"); PrintList_L(List); printf("输入查找的位置:"); scanf("%d",&i); GetElem_L(List,i); printf("输入插入的位置和插入元素:"); scanf("%d %d",&i,&e); ListInsert_L(List,i,e); printf("新链表如下:\n"); PrintList_L(List); printf("输入删除的位置:"); scanf("%d",&i); ListDelete_L(List,i); printf("新链表如下:\n"); PrintList_L(List); return 0; } ![图片说明](https://img-ask.csdn.net/upload/202002/04/1580819821_694608.png)
单链表中我想删除一个数据域的值为x的节点编写了这个函数运行出来不能实现这个功能请问为什么?大佬们
``` void SC(splist*L) { printf("请输入要删除的数"); int a; scanf("%d",&a); splist *p; splist *h; p=L->next; while(p!=NULL) { if(p->data=a) { L->next=L->next->next; h=p; free(h); break; } else if(p->next->data=a) { p->next=p->next->next; break; } p=p->next; } } ```
用C++创建单链表,运行到p->next=(*list)->next;时显示发生访问冲突
![图片说明](https://img-ask.csdn.net/upload/201905/04/1556935808_498196.png) 代码如下 ``` #include<iostream> using namespace std; struct Node//创建单链表结构体 { int date; Node *next; }; int list_headinsert(Node **list, int a[], int n); int getlist(Node *list, int i); int main() { int *p, n; cout << "请输入n="; cin >> n; p = new int[n]; for (int i = 0; i < n; i++) { cout << "请输入第" << i << "个元素="; cin >> p[i]; } Node **list=new Node*;//创建一个空表; if (*list == NULL) { cout << "空间申请失败"; return 0; } list_headinsert(list, p, n); for (int i = 1; i < n; i++)//按顺序导出数据元素; cout << getlist(*list, i) << ' '; return 1; } int list_headinsert(Node **list, int a[], int n)//头插法新建带头结点的单链表,并将数组元素导入 { Node *p = new Node; p->next = NULL; for (int i = n; i >1; i--) { Node*p = new Node; p->date = a[i]; p->next = (*list)->next; (*list)->next = p; } return 1; } int getlist(Node *list, int i)//查找链表数据元素 { Node *p = list->next; int j = 0; if (p == NULL) { cout << "空表"; return 0; } while (p&& j < i) { p = p->next; j++; } return p->date; } ```
单链表里有三种类型元素,将它们按类型分为三个循环链表 这个算法哪里出错?
#include<iostream> #include<stdlib.h> #include<malloc.h> typedef char ElemType; typedef struct LNode{ ElemType data; struct LNode *next; }LNode , *LinkList , *CiList ; void CreateList( LinkList &L ,int n ) { LinkList p , q ; L = ( LinkList ) malloc ( sizeof ( LNode) ); L ->next = NULL ; q = L ; for ( int i=0 ; i < n ; i++) { p = ( LinkList ) malloc ( sizeof ( LNode) ); scanf( " %c", &p->data ); p->next = q->next ; q->next = p ; q = p ; } } void DipList ( LinkList L ) { LinkList p = L ; while ( p->next != NULL ) { p = p->next ; printf ( "%c", p->data); printf(" "); } } void Separate_List ( LinkList L , CiList &La ,CiList &Lb ,CiList &Lc ) { LNode *p,*q,*r,*s ; La = ( CiList ) malloc ( sizeof( LNode )); p = La ; Lb = ( CiList ) malloc ( sizeof( LNode )); q = Lb ; Lc = ( CiList ) malloc ( sizeof( LNode )); r = Lc ; s = L->next ; while ( s!= NULL ) { if ( s->data >= '0' && s->data <= '9') { p->next = s ; p = s ; s = s->next ; } if( s->data >= 'a' && s->data <= 'z') { q->next = s ; q = s ; s = s->next ; } else { r->next = s ; r = s ; s = s->next ; } } p->next = La ; q->next = Lb ; r->next = Lc ; } void main() { LinkList L; CiList La , Lb ,Lc ; int n ; printf( "请输入单链表长度:\n"); scanf("%d",&n); printf("请输入单链表元素:\n"); CreateList( L , n ); printf("输入的单链表为:\n"); DipList ( L ) ; Separate_List ( L , La ,Lb ,Lc ); printf("分离后的循环链表La为:\n"); DipList ( La ) ; printf("分离后的循环链表Lb为:\n"); DipList ( Lb ) ; printf("分离后的循环链表Lc为:\n"); DipList ( Lc ) ; } 到分离这个函数的时候就会出错 但是我自己检查自己的算法始终不知道错在哪 求指点 十分感谢!!
【c语言/链表】两个有序单链表合成为一个有序单链表,自己写的代码运行出错,求助
两个有序单链表合成为一个有序单链表,自己写的代码运行出错, 弄了很久都没解决,是我的思路错了,还是代码细节出问题了?求大神帮忙 编译通过,但是运行是直接提示exe停止运行 ``` #include<stdio.h> #include<stdlib.h> typedef struct node{ int data; struct node *next; }Node,*Link; Link newList(int a[],int n,Link head)//创建单链表 { //头插法 //创建头结点 Link node; int i; head=(Link)malloc(sizeof(Node)); head->next=NULL; //创建后续节点 for(i=n;i>0;i--)//由于是头插法,将数组元素从后往前放入单链表 { node=(Link)malloc(sizeof(Node)); node->data=a[i-1]; node->next=head->next; head->next=node; } return head; } void sortlink(Link one,Link two,Link three)//单链表合成 { int i,j,t; one=one->next; two=two->next; three=three->next; while(one||two) { i=one->data; j=two->data; if(i<=j) { three->data=i; one=one->next; three=three->next; } else { three->data=j; two=two->next; three=three->next; } } } void outputlink(Link three)//输出合成的单链表 { int a; three=three->next; while(three) { a=three->data; printf("%d",a); three=three->next; } } void main(){ int a[100],b[100],c[200],i,n,m,t; Link one,two,three; printf("请输入第一个链表的长度(不超过100)"); scanf("%d",&n); printf("请输入第二个链表的长度(不超过100)"); scanf("%d",&m); t=n+m; printf("请输入第一个链表的值(有序)"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("请输入第二个链表的值(有序)"); for(i=0;i<m;i++) { scanf("%d",&b[i]); } newList(a,n,one); newList(b,m,two); newList(c,t,three); sortlink(one,two,three); outputlink(three); } ```
这是一个关于 数据结构链表结点指针赋值问题
``` #include<iostream> #include<conio.h> #include<string.h> #define OK 1 #define MAXSIZE 100 #define ERROR -1 using namespace std; typedef int Status; #define OK 1 typedef struct { char name[5]; float price; }Book; typedef Book ElemType; typedef struct LNode { Book data; LNode *next; }LNode,*List; Status InitList(List &L) { L=new LNode(); /*if(!B) exit(-1); else */ L->next=NULL; return OK; } Status GetElem(int i,List L,ElemType &e) { List P=L->next; int j=1; while(P&&j<1) { P=P->next; ++j; } if(!P||j<i) return ERROR; e=P->data; return OK; } Status QianCha(List Head,List L,List shou) { if(Head->next=NULL) { Head->next=L; L->next=shou; } else { Head->next=L->next; L->next=NULL; } return 0; } void Q(List &L,int n) { L=new LNode(); L->next=NULL; for(int i=0;i<n;i++) { LNode *p=new LNode(); cin>>(p->data.price); p->next=L->next; L->next=p; } } int main() { Book e; /* 注释代码不用看! LNode *tou=NULL; List LL=NULL; List MM=NULL; InitList(tou); List BBB=NULL; InitList(BBB); InitList(LL); InitList(MM); QianCha(tou,BBB,LL); QianCha(tou,,BBB); GetElem(1,tou,e); */ List haha; Q(haha,4); cout<<e.price; getch(); return 0; } ``` 这是我写的代码,想测试 用前插法生成单链表,在单步调试过程中, 出现这个界面 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577536824_731100.png) 生成了结点L空间,给L的属性next指针赋值,调试工具中不能看到NULL(即000000地址)为什么呢?
问一个很愚蠢的基础问题,p=p->next链表循环里,为什么这样不会覆盖掉链表的值啊
链表循环里 比如L是带头节点的单链表 循环单链表一般都是 ``` list p=(list)malloc(sizeof(link)); p=L->next; while(p) { printf("%d ",p->data); p=p->next; } ``` 为什么节点值没有一个一个被覆盖掉,下一次遍历还存在啊。 比如L 这个链表里面值分别是 1,2,3,4,5,按照p=p->next不应该是1这里的节点被2代替,2被3代替了么,求解求解,以前写代码就只是写写没有思考过。。。 还有 ``` 单链表构建栈反向输出链表节点值 void print(list p) if(p->next!=0) print(p->next); printf("%d",p->data);} 它为什么可以输出最后一个节点以外值不应该输出了最后一个节点值就跳出程序么 ```
大佬们C语言链表例题有些看不懂,麻烦大佬们打点注释
//实现对一个单链表的倒置并输出控制台 #include<stdio.h> #include<stdlib.h> #define NULL 0 struct node{ int num; struct node *next; }; int main() { int i; struct node *L,*s,*p,*q,*k,*h; L=(node*)malloc(sizeof(struct node)); //L->num=NULL; p=L; printf("请输入\n"); for(i=0;i<5;i++) { s=(node*)malloc(sizeof(struct node)); scanf("%d",&s->num); p->next=s; p=s; } p->next=NULL;//建立和输入 p=L; printf("输入的元素"); for(i=0;i<5;i++) { printf("%d\t",p->next->num); p=p->next; } printf("\n"); p=L; while(p->next->next!=NULL) p=p->next; q=p->next; q->next=p; p->next=NULL; p=L; for(i=0;i<3;i++) { while (p->next->next!=NULL) p=p->next; k=p->next; k->next=p; p->next=NULL; p=L; } L->next=q;//链表的倒置 p=L->next; printf("倒置后输出"); while(p!=NULL) { printf("%d\t",p->num); p=p->next; } //倒置后输出 }
c语言单链表每次进行查找操作和排序操作的时候程序就闪退
刚学单链表,但是程序每到进行查找操作和排序操作,程序就闪退 编译的时候也没有报错,深夜求助,下面是测试程序的一些片段,单链表初始化和其他操作如插入、删除、输出等都没什么问题,就是一到下面两种操作就闪退了,两个操作函数都是void型的 ``` Linklist L; ElemType *e; case 9:printf("请输入元素的位置\n");scanf("%d",&flag);GetElem(L,flag,e);break;//找到flag位置的数据并print出来 case 14:LinkSort(&L);break;//对单链表中的数据排序 ``` 下面是查找操作的函数 ``` void GetElem(Linklist L,int i,Elemtype *e) { if (L==NULL) { printf("单链表不存在\n"); } else { if (L->next==NULL) { printf("单链表为空\n"); }//前提判断 else{ int length; length=ListLength(L); if (i>length||i<0) { printf("输入错误\n"); }//判断输入合法性 else { int j=0; for (j = 0; j < i; j++) { (*e)=(L->next)->data; L=L->next; }//循环i次,将L->next指向第i个节点,并传值给*e printf("第%d个位置的数据为%d\n",i,*e); } } } } ``` 下面是排序操作的函数,排序操作的我的思想是,创建一个新单链表,然后将传入的单链表的每个节点的数据先与新单链表中的数据进行比较,从小到大确定位置,然后再用插入操作,将每个数据插入新的单链表中 ``` void LinkSort(Linklist *L) { if ((*L)==NULL) { printf("单链表不存在\n"); } else { int l=ListLength(*L); if (l<2) { printf("单链表中至少要有两个元素才能进行排序\n"); } else { int i; Linklist p=(*L)->next; Linklist q,s; q=(Linklist)malloc(sizeof(LNode)); q->next=NULL; s=(Linklist)malloc(sizeof(LNode)); s->data=p->data; s->next=NULL; q->next=s;//先将传入单链表的第一个节点的数据添加到新单链表中去 Linklist r=q->next; p=p->next; while(p->next!=NULL) { i=1;//i是用来确定后续插入位置的 while((p->data)>(r->data)&&r->next!=NULL) { i++; r=r->next; } if ((p->data)>(r->data)) { i++; ListInsert(&q,i,p->data); } else ListInsert(&q,i,p->data); p=p->next; r=q->next; } i=1; while((p->data)>(r->data)&&r->next!=NULL) { i++; r=r->next; } if ((p->data)>(r->data)) { i++; ListInsert(&q,i,p->data); } else ListInsert(&q,i,p->data); *L=q; printf("排序完成\n"); } } } ``` 再附上插入操作函数 ``` void ListInsert(Linklist *L,int i,Elemtype e) { if (*L==NULL) { printf("单链表不存在\n"); } else { int length=ListLength(*L); if (i<1||i>length+1) { printf("输入错误\n"); }//判断输入的合法性 else { Linklist p=*L; int j=0; for (j = 0; j <i-1 ; j++) { p=p->next; }//通过循环使p指向所要插入节点位置的前一个节点 Linklist *r; (*r)=(Linklist)malloc(sizeof(LNode)); (*r)->data=e; (*r)->next=p->next; p->next=*r;//将新建立的节点插入 printf("插入成功\n"); } } } ``` 这是操作情景,直接退回桌面了 呜呜呜 ![图片说明](https://img-ask.csdn.net/upload/201910/21/1571593640_443751.png)
【数据结构】求助:一个简单的单链表问题
![图片说明](https://img-ask.csdn.net/upload/201811/25/1543122755_25344.jpg) ``` #include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 typedef int ElemType; typedef struct { ElemType data; struct Node* next; }Node,*LinkList; int main() { //建立单链表 LinkList LA; *LA=(LinkList)malloc(sizeof(Node)); *LA->next=NULL; Node *r,*s; int c; r=LA; int flag=1,count=0; while(flag) { printf("Please input new node to the LinkList,node must be intatger,input q to quit:\n"); scanf("%d",&c); if(c!="q") { s=(Node*)malloc(sizeof(Node)); s->data=c; r->next=s; r=s; count++; } else { flag=0; r->next=NULL; } } Deal(LA,count); //打印新生成的表 printf("New LinkList is:\n"); r=LA->next; while(r->next!=NULL) { printf("%5d",r->data); } return 0; } int Deal(LinkList *LA,int n)//n为单链表长度,n为偶数 { LinkList LB,LC; *LB=(LinkList)malloc(sizeof(Node));//建立头结点 *LB->next=NULL;//建立空的单链表LB *LC=(LinkList)malloc(sizeof(Node));//建立头结点 *LC->next=NULL;//建立空的单链表LC Node *p,*q,*r; int i; p=LA->next->next;//令指针p指向序号为偶数的元素 q=LA->next;//令指针q指向序号为奇数的元素 r=LB;//令指针r指向LB s=LC;//令指针s指向LC //插入LB的第一个元素 LB->next=p; q-next=p-next; p=p->next->next; while(p->next!=NULL&&q->next!=NULL) { //尾插法 s->next=q; LA=q->next; q=q->next->next; s=s->next; //头插法 p->next=LB->next; LB->next=p; p=p->next->next; } //合并LB/LC两表 if(p->next==NULL) { p->next=LC->next; free(LC); } return 0; } ``` 程序无法通过编译,麻烦各位大神帮忙看一看那里出问题了
请指教下面数据结构代码的功能?
status A(LinkList L){//L是无表头结点的单链表 if(L&&L->next){ Q=L;L=L->next;p=L; while(p->next)p=p->next; p->next=Q;Q->next=NULL; } return OK; }
求助,请问输出函数有什么问题吗?为什么只能输出第二组数据?
/*Q4609.(10分)建立学生成绩管理系统,对学生以下信息: 学号、名字、成绩(语文、数学、外语) 进行管理。要 求利用结构体变量记录每名学生的学号、名字、成绩(语文、数学、外语),并建立单向链表来存放学生的信息。 功能实现要求如下: (1)写函数Append ()实现使用单链表来添加学生的信息。√ (2)写函数DisLink()输出所有学生的信息。 √ (3)写函数Sort()对学生成绩进行排序。 (4)写DeleteMemory()函数释放链表所占内存空间 √ 其中结构体类型定义如下: struct stu { char ID[12];//学号 char name[20];//姓名 int c1;//语文成绩 int c2;//数学成绩 int c3;//英语成绩 struct stu * next; } 测试用例如下: 1 增加数据 2 退出 选择:1 请输入学号:001 请输入名字:张三 请依次输入语文,数学外语成绩:88 89 90 1 增加数据 2 退出 选择:1 请输入学号:0*/ #include<stdio.h> #include<stdlib.h> struct stu { char ID[12];//学号 char name[20];//姓名 int c1;//语文成绩 int c2;//数学成绩 int c3;//英语成绩 struct stu * next; }; struct stu*Append() { struct stu*pHead=NULL,*pNew=NULL,*pTail=NULL; pNew=(struct stu*)malloc(sizeof(struct stu));//给一个stu分配空间! int i=0; int a; printf("1 增加数据\n"); printf("2 退出\n"); printf("选择"); scanf("%d",&a); for(i=0;i<100;i++) { if(a==1) { printf("请输入学号:"); scanf("%s",&pNew->ID); printf("请输入名字:"); scanf("%s",&pNew->name); printf("请依次输入语文,数学,外语成绩:"); scanf("%d%d%d",&pNew->c1,&pNew->c2,&pNew->c3); if(pHead==NULL) pHead=pNew; else pTail->next=pNew; pTail=pNew; pNew->next=NULL; printf("1 增加数据\n"); printf("2 退出\n"); printf("选择"); scanf("%d",&a); getchar(); //吞掉回车,不然的话回车会进入gets.gets直接结束 } else break; } return pHead; } void DisLink(struct stu *pHead) { struct stu*p=pHead; int n=1; printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n"); while(p!=NULL) { int sum=p->c1+p->c2+p->c3; printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,sum); p=p->next; n++; } } void Sort(struct stu*pHead) { int n=0; struct stu *p,*q,*t; p=pHead; for(;p!=NULL;p=p->next) { p->next=q; if((p->c1+p->c2+p->c3)>(q->c1+q->c2+q->c3)) { t=p,p=q,q=p; } } /* printf("排序后\n"); printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n"); while(p!=NULL) { printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,p->c1+p->c2+p->c3); p=p->next; n++; }*/ } void DeleteMemory(struct stu* pHead) { struct stu *p; while (NULL != pHead) { p = pHead; pHead = pHead->next; free(p); // 下一个节点 free(Pointer); } } int main() { struct stu *p; p=Append(); DisLink(p); Sort(p); printf("排序后"); DisLink(p); DeleteMemory(p); return 0; }
紧急求助,为什么只能输出一组数据?
/*Q4609.(10分)建立学生成绩管理系统,对学生以下信息: 学号、名字、成绩(语文、数学、外语) 进行管理。要 求利用结构体变量记录每名学生的学号、名字、成绩(语文、数学、外语),并建立单向链表来存放学生的信息。 功能实现要求如下: (1)写函数Append ()实现使用单链表来添加学生的信息。√ (2)写函数DisLink()输出所有学生的信息。 √ (3)写函数Sort()对学生成绩进行排序。 (4)写DeleteMemory()函数释放链表所占内存空间 √ 其中结构体类型定义如下: struct stu { char ID[12];//学号 char name[20];//姓名 int c1;//语文成绩 int c2;//数学成绩 int c3;//英语成绩 struct stu * next; } 测试用例如下: 1 增加数据 2 退出 选择:1 请输入学号:001 请输入名字:张三 请依次输入语文,数学外语成绩:88 89 90 1 增加数据 2 退出 选择:1 请输入学号:0*/ #include<stdio.h> #include<stdlib.h> struct stu { char ID[12];//学号 char name[20];//姓名 int c1;//语文成绩 int c2;//数学成绩 int c3;//英语成绩 struct stu * next; }; struct stu*Append() { struct stu*pHead=NULL,*pNew=NULL,*pTail=NULL; pNew=(struct stu*)malloc(sizeof(struct stu));//给一个stu分配空间! int i=0; int a; printf("1 增加数据\n"); printf("2 退出\n"); printf("选择"); scanf("%d",&a); for(i=0;i<100;i++) { if(a==1) { printf("请输入学号:"); scanf("%s",&pNew->ID); printf("请输入名字:"); scanf("%s",&pNew->name); printf("请依次输入语文,数学,外语成绩:"); scanf("%d%d%d",&pNew->c1,&pNew->c2,&pNew->c3); if(pHead==NULL) pHead=pNew; else pTail->next=pNew; pTail=pNew; pNew->next=NULL; printf("1 增加数据\n"); printf("2 退出\n"); printf("选择"); scanf("%d",&a); getchar(); //吞掉回车,不然的话回车会进入gets.gets直接结束 } else break; } return pHead; } void DisLink(struct stu *pHead) { struct stu*p=pHead; int n=1; printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n"); while(p!=NULL) { int sum=p->c1+p->c2+p->c3; printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,sum); p=p->next; n++; } } void Sort(struct stu*pHead) { int n=0; struct stu *p,*q,*t; p=pHead; while(p!=NULL) { p->next=q; if((p->c1+p->c2+p->c3)>(q->c1+q->c2+q->c3)) { t=p,p=q,q=p; } p=p->next; } printf("排序后\n"); printf("序号\t学号\t名字 \t语文\t数学\t外语\t总分\n"); while(p!=NULL) { printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\n",n,p->ID,p->name,p->c1,p->c2,p->c3,p->c1+p->c2+p->c3); p=p->next; n++; } } void DeleteMemory(struct stu* pHead) { struct stu *p; while (NULL != pHead) { p = pHead; pHead = pHead->next; free(p); // 下一个节点 free(Pointer); } } int main() { struct stu *p; p=Append(); DisLink(p); Sort(p); DeleteMemory(p); return 0; }
建立单链表后,(尾插法)主函数调用链表函数却没输出为什么?
#include<iostream> using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode; void creatLinkListR(LNode *&head) { head = (LNode*)malloc(sizeof(LNode)); head->next = NULL; LNode *p = NULL; LNode *r = head; cout << "Please input the length of LinkList you wanna built :" << endl; int n; cin >> n; for (int i = 0; i < n; ++i) { p = (LNode*)malloc(sizeof(LNode)); p ->next= NULL; cout << "Please intput p->data" << endl; cin >> p->data; p->next = r->next; r->next = p->next; r = p; } r->next = NULL; } int main() { LNode *head=(LNode*)malloc(sizeof(LNode)); head = NULL; creatLinkListR(*&head); LNode *p = head->next; while (p != NULL) { cout << p->data << " "; p = p->next; } cout << endl; return 0; }
单链表的创建及其他操作
这是一段代码,但是自己不会运行(搞不清输入顺序,希望大神给个代码运行截图,最好解释一下,谢谢了) #include <iostream> #include<iomanip> using namespace std; struct student//定义结构体变量; { long int num; double score; student *next; }; student *creatlink()//创建链表节点 { student *p1,*p2,*p3,*head=NULL;//初始化头指针; p1=new student;//动态申请内存, cin>>p1->num>>p1->score;//输入结构体中的内容(为了好以0 0结束创建节点) if(p1->num!=0&&p1->score!=0) { head=p1; while(p1->num!=0&&p1->score!=0)//判断是不是0 0; { p2=new student;//再次申请内存。 p1->next=p2; p3=p1; cin>>p2->num>>p2->score;//输入数据 p1=p2; } p3->next=NULL;//尾指针置空。 } else head=NULL; return head; } student *dellink(student *head,long m) { student *p=head,*p1; while(p!=NULL) { if((p->num==m)&&(p==head))//如果要删除的节点在头上。 { head=p->next; break; } else if((p->num==m)&&(p->next==NULL))//删除的节点在结尾 { p=NULL; } else { if(p->num!=m)//要删的节点在中间时判断是否是要删的节点 { p1=p; p=p->next; } else { p1->next=p->next; break; } } } return head; } student *insertlink(student *head,student *stu) { student *p,*p1,*p3,*p2; p=head; p2=new student;//申请动态内存,为了将新的节点地址变化(如果不变第二次插入式会出错) //cout<<p2<<endl; p2->num=stu->num;//赋值,(也可以用结构体直接赋值) p2->score=stu->score; p2->next=stu->next; p1=p2; if(head==NULL)//判断链表是否为空 { head=p1; p1->next=NULL; } else { while(p->next->next!=NULL) { if((p->num<=p1->num)&&(p->next->num>=p1->num))//判断是否是要插入的位置(此处要求输入是按升序输入的,插入时按升序插入) { p3=p->next; p->next=p1; p1->next=p3; break; } p=p->next; } //cout<<p->next->next<<endl; if((p->num<=p1->num)&&(p->next->num>=p1->num))//由于判断结束的标志是p->next->next,所以还有两组数据还没比较。 { p3=p->next; p->next=p1; p1->next=p3; } else if(p->next->num<=p1->num) { p->next->next=p1; p1->next=NULL; } } return head; } void printlink(student *head) { student *p=head; while(p->next!=NULL) { cout<<p->num<<" "<<p->score<<endl; p=p->next; } cout<<p->num<<" "<<p->score<<endl; } void freelink(student *head) { student *p=head,*p1; while(p!=NULL) { p1=p->next;//存储下一个指针的内容 delete(p);//释放p的内存 p=p1; } delete(p); } int main() { student *creatlink(void); student *dellink(student *,long); student *insertlink(student *,student *); void printlink(student *); void freelink(student *); student *head,stu; long del_num; head=creatlink(); cin>>del_num; head=dellink(head,del_num); cin>>stu.num>>stu.score; head=insertlink(head,&stu); cin>>stu.num>>stu.score; head=insertlink(head,&stu); cout<<setiosflags(ios::fixed); cout<<setprecision(2); printlink(head); freelink(head); return 0; }
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
五年程序员记流水账式的自白。
不知觉已中码龄已突破五年,一路走来从起初铁憨憨到现在的十九线程序员,一路成长,虽然不能成为高工,但是也能挡下一面,从15年很火的android开始入坑,走过java、.Net、QT,目前仍处于android和.net交替开发中。 毕业到现在一共就职过两家公司,目前是第二家,公司算是半个创业公司,所以基本上都会身兼多职。比如不光要写代码,还要写软著、软著评测、线上线下客户对接需求收集...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
一文详尽系列之模型评估指标
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容在机器学习领域通常会根据实际的业务场景拟定相应的不同的业务指标,针对不同机器学习问题如回归、分类、排...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
2019年除夕夜的有感而发
天气:小雨(加小雪) 温度:3摄氏度 空气:严重污染(399) 风向:北风 风力:微风 现在是除夕夜晚上十点钟,再有两个小时就要新的一年了; 首先要说的是我没患病,至少现在是没有患病;但是心情确像患了病一样沉重; 现在这个时刻应该大部分家庭都在看春晚吧,或许一家人团团圆圆的坐在一起,或许因为某些特殊原因而不能团圆;但不管是身在何处,身处什么境地,我都想对每一个人说一句:新年快乐! 不知道csdn这...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了掌握好Android打下基础。
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问