数据结构上机答案(3)

2019-02-15 19:37

}

}

case 2:scanf(\ if(!LinkDelete_L(T,i,e)) printf(\ else printf(\ break;

case 3:LoadLink_L(T); break; case 0:return 1; }

1.5合并链表 #include #include #define ERROR 0 #define OK 1

#define ElemType int

typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList;

int CreateLink_L(LinkList &L,int n) { LinkList p,q; int i; ElemType e; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; q=(LinkList)malloc(sizeof(LNode)); q=L; for(i=0;idata=e; p->next=q->next; q->next=p; q=q->next; }

return OK; }

int LoadLink_L(LinkList &L) { LinkList p=L->next; if(!p) printf(\ else { while(p) { printf(\ p=p->next; } } printf(\ return OK; }

void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc) { LinkList pa,pb,pc; pa=La->next; pb=Lb->next; Lc=pc=La; while(pa&&pb) { if(pa->data<=pb->data) { pc->next=pa; pc=pa; pa=pa->next; } else { pc->next=pb; pc=pb; pb=pb->next; } } pc->next=pa?pa:pb; free(Lb); }

int main() { LinkList La,Lb,Lc; int n; scanf(\ CreateLink_L(La,n); printf(\ LoadLink_L(La); scanf(\ CreateLink_L(Lb,n); printf(\ LoadLink_L(Lb); MergeList_L(La,Lb,Lc); printf(\ LoadLink_L(Lc); return 0; }

1.6线性链表逆置 #include #include #define OK 1 #define ERROR 0

#define ElemType int

typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList;

int CreateLink_L(LinkList &L,int n) { LinkList p,q; int i; ElemType e; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; q=(LinkList)malloc(sizeof(LNode)); q=L; for(i=0;i

p=(LinkList)malloc(sizeof(LNode)); p->data=e; p->next=q->next; q->next=p; q=q->next; } return OK; }

int LoadLink_L(LinkList &L) { LinkList p=L->next; if(!p) printf(\ else while(p) { printf(\ p=p->next; } printf(\ return OK; }

int inversion(LinkList &L) { LinkList p=L->next,q; L->next=NULL; while(p) { q=p->next; p->next=L->next; L->next=p; p=q; } return OK; }

int main() { LinkList T; int n; scanf(\ CreateLink_L(T,n);

printf(\ LoadLink_L(T); inversion(T); printf(\ LoadLink_L(T); return 0; }

2.1顺序栈的基本操作 #include #include #include #define OK 1 #define ERROR 0

#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10

typedef int SElemType; typedef int Status;

struct SqStack { SElemType *base; SElemType *top; int stacksize; };

Status InitStack(SqStack &S) { S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) return ERROR; S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; }

Status Push(SqStack &S,SElemType e) { if(S.top-S.base>=S.stacksize) { S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));


数据结构上机答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:线塔3 混凝土电杆组立检查及评级记录表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: