输出结果为什么不是2?

sagegz 2008-11-02 11:20:49
头文件

#include <malloc.h>

#define OK 1
#define ERROR -1
#define OVERFLOW -2
#define NULL 0

typedef int ElemType;

typedef struct LNode {
ElemType data;//数据域
struct LNode* next;//指针域
}LNode, *LinkList;

typedef int Status;

Status InitLinkList_L(LinkList &L){//建立一个带头节点的单链表
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
return OK;
}

Status GetElem_L(LinkList L,int i,ElemType &e){//获得第i个位置上的元素并存放在e中
LinkList p = L->next;//p指像第一个结点
int j=1;//j为计数器
while(p && j<i){
p = p->next; ++j;
}
if(!p)
return ERROR;
e = p->data;
return OK;
}

Status LinkInsert_L(LinkList &L,int i,ElemType e){//在第i个元素之前插入新的数据元素e
LinkList p = L;//将p指向头结点
int j=0;//j为计数器,因为此时p指向头结点
while(p && j<i-1){
p = p->next;//p将指向第i-1个结点
++j;
}
if(!p) return ERROR;//i-1超过表长
LinkList s = (LinkList)malloc(sizeof(LNode));//生成一个新结点
s->data = e;//给该结点数据域赋值
s->next = p->next; p->next = s;//修改指针完成插入
return OK;
}

Status LinkDelete_L(LinkList &L,int i,ElemType &e){
LinkList p = L;//将p指向头结点
int j=0;//j为计数器,因为此时p指向头结点
while(p && j<i-1){
p = p->next;//p将指向第i-1个结点
++j;
}
if(!p->next) return ERROR;//删除位置不合理
LinkList q = p->next;//将q指针指向需要删除的结点
p->next = q->next;//修改指针
e = q->data;//将删除的结点中的数据域赋值给e
free(q);//释放结点
return OK;
}


.cpp文件

#include "DS.h"
#include <iostream>
using namespace std;
int main(){
ElemType e;
LinkList S;
InitLinkList_L(S);
LinkInsert_L(S,1,2);
cout<<GetElem_L(S,1,e);
return 0;
}
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sagegz 2008-11-02
  • 打赏
  • 举报
回复
谢谢大哥!
没太注意想!
因为书上就是这样的!
太乙 2008-11-02
  • 打赏
  • 举报
回复


把main改为:

int main(){
ElemType e;
LinkList S;
InitLinkList_L(S);
LinkInsert_L(S,1,2);
if(GetElem_L(S,1,e)) cout<<e;
return 0;
}

Vegertar 2008-11-02
  • 打赏
  • 举报
回复
不习惯看C版本的表, 头疼...
太乙 2008-11-02
  • 打赏
  • 举报
回复



汗~~~~~~

你get返回的是啥?


Status GetElem_L(LinkList L,int i,ElemType &e){//获得第i个位置上的元素并存放在e中
LinkList p = L->next;//p指像第一个结点
int j=1;//j为计数器
while(p && j<i){
p = p->next; ++j;
}
if(!p)
return ERROR;
e = p->data;
return OK;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧