3个回答

typedef struct Node
{
int Data;
NODE* next;
}NODE;
NODE a;
NODE p;
p->next = a;
p->next->next 相当于 a->next 这是ok的;

C语言归并有序单链表的问题

C语言 一元多项式的加法运算（单链表）
【求助】单链表建立与输出错误？

``` 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; } } ```

![图片说明](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语言/链表】两个有序单链表合成为一个有序单链表，自己写的代码运行出错，求助

``` #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地址）为什么呢？

//实现对一个单链表的倒置并输出控制台 #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语言单链表每次进行查找操作和排序操作的时候程序就闪退

【数据结构】求助：一个简单的单链表问题

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; }

Linux(服务器编程):15---两种高效的事件处理模式（reactor模式、proactor模式）

C语言魔塔游戏

Python爬虫爬取淘宝，京东商品信息

Java工作4年来应聘要16K最后没要,细节如下。。。

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

1、骇客帝国(1999) 概念：在线/离线，递归，循环，矩阵等 剧情简介： 不久的将来，网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂，并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他，现实世界其实是由一个名叫“母体”的计算机人工智能系统控制，人们就像他们饲养的动物，没有自由和思想，而尼奥就是能够拯救人类的救世主。 可是，救赎之路从来都不会一帆风顺，到底哪里才是真实的世界？如何...
Python绘图，圣诞树，花，爱心 | Turtle篇

CPU对每个程序员来说，是个既熟悉又陌生的东西？ 如果你只知道CPU是中央处理器的话，那可能对你并没有什么用，那么作为程序员的我们，必须要搞懂的就是CPU这家伙是如何运行的，尤其要搞懂它里面的寄存器是怎么一回事，因为这将让你从底层明白程序的运行机制。 随我一起，来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说，我们首先就要搞明白它是怎么回事，也就是它的内部构造，当然，CPU那么牛的一个东...

2019年除夕夜的有感而发

2020年的1月，我辞掉了我的第一份工作

By 超神经场景描述：昨天 2 月 3 日，是大部分城市号召远程工作的第一天，全国有接近 2 亿人在家开始远程办公，钉钉上也有超过 1000 万家企业活跃起来。关键词：十一出行 人脸...
Java基础知识点梳理

2020年全新Java学习路线图，含配套视频，学完即为中级Java程序员！！

B 站上有哪些很好的学习资源?