问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...struct node{ int data ; struct node *next ; }Node,*link ; 这 ...

发布网友 发布时间:2024-10-04 01:32

我来回答

3个回答

热心网友 时间:2024-11-13 04:23

typedef把Node定义成struct node类型,把link定义成指向这个结构体的指针类型,两者都是类型名,所以可以这样声明:
Node mynode;//mynode是一个struct node结构体
link ptr_node;//ptr_node是一个指向struct node结构体的指针。

热心网友 时间:2024-11-13 04:22

;stdio.h>
#include<stdlib.h>
typedef struct node
{int data;
struct node *next;
}listnode;
listnode *creat();
void output(listnode *L);
void insert(listnode *L,int i,int e);
int delet(listnode *L,int e);

main()
{int k,i,e;
listnode*L;
do
{
printf("\n");
printf("\n =====================") ;
printf("\n | 1.creat linklist |");
printf("\n | 2.delet |");
printf("\n | 3.insert |");
printf("\n | 4.end! |");
printf("\n =====================") ;
printf("\n\ninput the num(1,2,3,4): ");
scanf("%d",&k);
switch(k)
{
case 1:break;
case 2:{ printf("i=? ");scanf("%d",&i);e=delet(L,i);
if(e) printf("\n delet ok!\n");output(L);}break;
case 3:{ printf("i,e=? ");scanf("%d %d",&i,&e);
insert(L,i,e); output(L);} break;
}
}while(k!=4);
printf("\n Goodbye!!\n");

return 1;
}

listnode *creat() /*建立单链表*/
{
listnode *L,*r,*s;
int i,length,c;
L=(listnode *)malloc(sizeof(listnode));
L->next=NULL;
L->data=30000;
printf("input the length of the linklist: ");
scanf("%d",&length);
i=0;
while(i<length)
{
r=L;
printf("\ninput %dth num: ",i+1);
scanf("%d",&c);
while((r->next!=NULL)&&(r->data!=c))
r=r->next;
if(r->data!=c)
{
s=(listnode *)malloc(sizeof(listnode));
s->data=c;
s->next=NULL;
r->next=s;
i++;
}
}
return L;
}

void output(listnode *L) /*输出单链表数据*/
{
listnode *p;
printf("\n\nLinklist:") ;
p=L->next;
while(p!=NULL)
{
printf(" ->%3d",p->data);
p=p->next;
}
printf("\n\n") ;
}

void insert(listnode *L,int i,int e) /*在单链表中第i个结点前插入一个元素*/
{
listnode *pre,*s, *p;
int k=0, flag = 0;
pre=L;
p=L;
while(p!=NULL)
{
if (p->data == e)
{
flag = 1;
}
p=p->next;
}
if (flag == 0)
{
while(pre!=NULL && k<i-1)
{
pre=pre->next;
k++;
}
if(pre!=NULL)
{
s=(listnode *)malloc(sizeof(listnode));
s->data=e;
s->next=pre->next;
pre->next=s;
}
else printf("error!");
}
else
{
printf("insert error!");
}
}

int delet(listnode *L,int i) /*从单链表中删除第i个数据元素*/
{
listnode *pre,*r;
int k,e;
pre=L;
k=0;
while(pre->next!=NULL && k<i-1)
{pre=pre->next;
k=k+1;
}
if(pre->next!=NULL)
{r=pre->next;
pre->next=r->next;
e=r->data;
free(r);
return(1);
}
else
{printf("\ndelet error!\n");
return(0);
}
}

热心网友 时间:2024-11-13 04:25

*link 代表指向node这种类型结构体的指针。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
甄嬛传之鸾凤还巢 与甄嬛传是一样的吗 周季风齐王纳谏的中心思想 求《邹忌讽齐王纳柬》的中心思想? 华为录音快捷键在哪里设置? 华为快捷录音怎样设置 为什么要大张旗鼓的放弃一个人? 11年的捷达喷油嘴打马达一直喷油是怎么回事 平板电脑适用的win10win10平板电脑用哪个版本好 [小区禁止饲养家禽的条例]禁止饲养家禽家畜规定 我说女朋友不爱我心里没有我她生气不理人怎么办? { int data; struct SNode *next; }这段代码在C语言程序里是什么意思... 唐朝诡事录2西行几个故事 豆瓣酱焖五花肉做法: 梦见前世死亡经过,我清晰梦到了我的前世 为什么会梦见自己死了,经常梦见自己各种死 快两年了,好多次梦见自己死亡,好多种死法,最多的是中枪,其中最多的原... ...和苹果走了好长时间走不出那个地方,最终走出去了是什么? ...是病毒感染.打了一周点滴后.停烧三天又开始低烧三天.今天全身长红 ... 新浪微薄提问:请问把对方加入黑名单,可以让对方悄悄关注取消掉吗? 苏州艾波索食品的食材真的都是从国外进口的高质量食材原料吗? 俄罗斯进口食品 做为国内公司,进口外国食品都需要准备哪些许可证明?求大神帮助_百度知 ... 有谁知道这是什么树的叶子啊 请问有没有吴尊的广州后援会或是飞轮海的广州后援会?大东的也要_百度知... 谁知道这个是什么树的叶子? 校址:广州市天河区龙洞 广州金融学院Q群多少 ?? 打印机一直是绿灯,为啥不能打印? 无极膏可以天天往脸上摸吗?我喜欢凉凉的感觉,会不会对皮肤有什么坏处... ...喝,感觉渴了,喝了水还是觉得渴,身体天天都是热热 公司买的HSM pure碎纸机,没人会使用? 甲功TSH偏高是怎么回事 梦到自己潜到一个池子里,水很清,里面好多碎玉,还有手机都亮着不管用... tsh高是怎么回事 超敏tsh偏高是什么原因 在三线城市白手起家可以做什么? ...每层大概160平左右 我想用来创业 我们家这儿是三线城市 2024年86属虎人最有钱的年龄 86年属虎哪一年发大财 梦见自己从一池子里捡到宝石好几块。好吗? 东能银滩怎么样?好不好?值不值得买? 东能银滩的项目介绍 东能银滩的介绍 东能银滩在哪里?哪里距离海有多远? 陈继生个人简介 滦南职业教育中心2024年招生简章 野生水老鼠可以吃吗 水老鼠有毒吗肉能吃吗 水耗子肉有药用价值吗 海贼王-秘宝传说功能 海贼王-秘宝传说背景 海贼王-秘宝传说操作