#include <iostream>
#include<stdio.h>
#include<malloc.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBALE -1//不可执行的
#define OVERFLOW -2
typedef int Status;
typedef int Elemtype;
//结点定义
typedef struct LNode
{
Elemtype data;
struct LNode* next;
}*LinkList;
//创建表
void CreateList_L(LinkList &L, int n)
{
LinkList p;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
printf("请输入你的学号");
for (int i = n; i > 0; --i)
{
p = (LinkList)malloc(sizeof(LNode));
scanf("%d", &p->data);
p->next = L->next;
L->next = p;
}
}
//删除
Status ListDelete_L(LinkList& L, int i, Elemtype& e)
{
//删除第i个,由e返回其值
LinkList p, q;
p = L;
int j = 0;
while (p->next && j < i - 1)
{
//寻找第i个结点,并使p指向其前驱
p = p->next; ++j;
if (!(p->next) || j > i - 1)
return ERROR;
q = p->next;
p->next = q->next;
free(q);
return OK;
}
}
void display(LinkList L)
{
LinkList p = L->next;
while (p)
{
printf("%d", p->next);
p = p->next;
}
printf("\n");
}
void main()
{
LinkList L;
CreateList_L(L, 8);
Elemtype e;
ListDelete_L(L, 7, e);
printf("被删除的值:%d\n", e);
display(L);
}
在vs运行结果时不弹出运行框,在vc++6.0中能弹出,但是输入后按回车没有用?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qzjhjxj 2021-10-09 19:17关注
修改如下,供参考:
#include <iostream> #include<stdio.h> #include<malloc.h> #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBALE -1//不可执行的 #define OVERFLOW -2 typedef int Status; typedef int Elemtype; //结点定义 typedef struct LNode { Elemtype data; struct LNode* next; }*LinkList; //创建表 void CreateList_L(LinkList &L, int n) { LinkList p,qL; L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; qL = L; //修改 printf("请输入%d个结点的值:",n); for (int i = n; i > 0; --i) { p = (LinkList)malloc(sizeof(LNode)); p->next = NULL; //修改 scanf("%d", &p->data); qL->next = p; //p->next = L->next; qL = p; //修改 } } //删除 Status ListDelete_L(LinkList& L, int i, Elemtype& e) { //删除第i个,由e返回其值 LinkList p, q; p = L; int j = 0; while (p->next && j < i - 1) { //寻找第i个结点,并使p指向其前驱 p = p->next; ++j; } if (!(p->next) || j > i - 1) return ERROR; e = p->next->data; //修改 q = p->next; p->next = q->next; free(q); return OK; //} } void display(LinkList L) { LinkList p = L->next; while (p) { printf("%d ", p->data);// printf("%d ", p->next); 修改 p = p->next; } printf("\n"); } int main() { LinkList L; CreateList_L(L,8); Elemtype e=0; ListDelete_L(L, 8, e); printf("被删除的值:%d\n", e); display(L); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
- ¥15 DS18B20内部ADC模数转换器
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历