论坛: 编程破解 标题: 有关元素删除和连连看问题的数据结构算法!!!!急求!!!!!重谢!!!!! 复制本贴地址    
作者: J [jsophie]    论坛用户   登录
1.线性表特定元素删除
2.连连看问题
规则:1.删除线性表中的特定元素
规则:2.在一个M*N的棋盘内,随机分布若干不同花色的牌面,游戏目的是消除所有的牌面.游戏规则如下:选择一对相同的图按连线,要求此连线在避开其他图按后,呈现的路径不能超过两次转弯,即将一对具有相同花色的牌面用三根一内的,避开其他牌面的直线连在一起就可以消除这对具有相同花色的牌面.

写出以上的题目的算法思想,用C语言写出源程序(要求运行于TC2.0无误),写出或者画出相关过程.
完成者请加我QQ:344399276  小女子感谢不尽.
希望在这个星期日(5月22日)下午3点前完成后加我QQ,急需!!!!!!!!

地主 发表时间: 05-05-21 12:14

回复: SysHu0teR [syshunter]   版主   登录
第一个问题:
代码:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct Node{
char data;
struct Node *next;
} ListNode;
typedef ListNode *LinkList;

LinkList create(void) {                      /*创建链表*/
LinkList head,r,s;
char ch;
head=(LinkList)malloc(sizeof(ListNode));
r=head;
while((ch=getchar())!='\n') {
s=(LinkList)malloc(sizeof(ListNode));
s->data=ch;
r->next=s;
r=s;

}
r->next=NULL;
return head;
}

void display_list(LinkList head) {
LinkList p;
p=head;
while(p->next) {
p=p->next;
printf("%c\t",p->data);

}
printf("\n");
}

int Delete(LinkList head,char e) { /*删除字符为e的结点*/
ListNode *q;
ListNode *p=head;

while(p->next) {
if(p->next->data==e) {
q=p->next;
p->next=q->next;
delete(q);
}
else p=p->next;
}
return 1;
}

int main(void) {
LinkList head;
//ListNode *p;
char ch;
head=create();
printf("delete data :    ");           
ch=getchar();                          /*输入要删除元素*/
Delete(head,ch);
display_list(head);
return 1;
}


随便写的,VC下测试通过。
第二个:
不会

B1层 发表时间: 05-05-21 23:08

回复: J [jsophie]   论坛用户   登录
楼上的在TC2.0都显示有错误

B2层 发表时间: 05-05-22 09:09

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号