网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月10日
漏签
0
天
c语言吧
关注:
799,043
贴子:
4,353,703
看贴
图片
吧主推荐
视频
游戏
2
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
求助
循环单链表
取消只看楼主
收藏
回复
独行者灬白泽
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
为什么这么写的没有输出啊
独行者灬白泽
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
do{
if(flag==0){
printf("%d",p->data);
flag=1;
}
else{
printf(" %d",p->data);
}
p=p->next;
}while(p!=start);学习群里大佬说这样就可以了,但我看不出什么差别
独行者灬白泽
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* CreateLinkList(int n) {
Node* head=NULL;
Node* p=NULL;
Node* start=NULL;
int i;
for(i=0;i<n;i++){
Node* newNode=(Node*)malloc(sizeof(Node));
scanf("%d",&newNode->data);
newNode->next=NULL;
if(head==NULL){
head=newNode;
p=head;
}
else{
p->next=newNode;
p=newNode;
}
if(i==0){
start=newNode;
}
}
p->next=start;
return head;
}
void PrintLinkList(Node* head, int x) {
Node* p = head;
int flag=0;
while (p->data!=x) {
p=p->next;
}
Node* start=p;
while(p!=start){
if(flag==0){
printf("%d",p->data);
flag=1;
}
else{
printf(" %d",p->data);
}
p=p->next;
}
printf("\n");
}
void Destroy(Node* head) {
Node *p;
while (head->next != head) {
p = head->next;
head->next = p->next;
free(p);
}
free(head);
}
int main() {
int n, x;
scanf("%d", &n);
Node *head = CreateLinkList(n);
while (scanf("%d", &x) != EOF) {
PrintLinkList(head, x);
}
Destroy(head);
return 0;
}
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示