第七周技术博客
数据结构的链表空间申请、插入元素,创建结点、删除结点。
// 242陈坤鑫第六周.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
typedef struct LNode
{
DataType data; /* 存储结点值 */
LNode *prior; /* 前驱结点地址 */
LNode *next; /* 后继结点地址 */
}Lnode,*LinkList;
LinkList InitList( )
{/* 双向循环链表的链表头申请空间 */
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
if(L!=NULL)
L->next=L->prior=L;
return L;
}
int ListLength(LinkList L)
{ /* 返回表的长度 */
int i=0;
LinkList p=L->next; /* p指向第一个结点 */
while(p!=L)
{
i++;
p=p->next;
}
return i;
}
LinkList GetElemP(LinkList L,int i)
{ /* 在双向链表中返回第i个元素的地址 */
int j;
LinkList p=L; /*p指向头结点*/
if(i<0||i>ListLength(L))
return NULL;
for(j=1;j<=i;j++) /* p指向第i个结点 */
p=p->next; /* p指向下一个结点 */
return p;
}
int ListInsert(LinkList L, int i, DataType e)
{ /* 在链表第i个位置上插入元素 */
LinkList p, s;
if(i<1||i>ListLength(L)+1) return 0;
p=GetElemP(L,i-1);//在L中确定第i个结点前驱的位置指针p
if(!p) return 0;
s=(LinkList)malloc(sizeof(LNode));/* 生成新结点 */
if(!s) return 0;
s->data=e; /* 将e赋给新的结点 */
s->prior=p; /* 新结点的前驱为第i-1个结点 */
s->next=p->next; /* 新结点的后继为第i个结点 */
p->next->prior=s; /* 第i个结点的前驱指向新结点 */
p->next=s; /* 第i-1个结点的后继指向新结点 */
return 1;
}
int ListDelete(LinkList L,DataType *e,int i)
{/*删除第i个结点*/
LinkList p;
if(i<1) return 0;
p=GetElemP(L,i); /* 在L中确定第i个元素的位置指针 */
if(!p) return 0;
*e=p->data; /* 把第i个结点的元素的值赋给e */
/* 原第i-1个结点的后继指向原第i+1个结点 */
p->prior->next=p->next;
/* 原第i+1个结点的前驱指向原第i-1个结点 */
p->next->prior=p->prior;
free(p); return 1;
}
int PrintList(LinkList L)
{ /* 返回表的长度 */
int i=0;
LinkList p=L->next; /* p指向第一个结点 */
while(p!=L)//移到节点头,表示已经循环了一遍,则退出
{
i++;
printf("%d ",p->data);
p=p->next; //移到下一个节点
}
printf(" length=%d\n",i);
return i;
}
int main(int argc, char* argv[])
{
/*2. 在main主函数中建立一个双向链表,
依次插入数据元素 2,4,6,8,10,12并打印输。*/
printf("242陈坤鑫第六周循环双链表\n");
LinkList p=InitList( );
ListInsert(p, 1, 2);
ListInsert(p, 2, 4);
ListInsert(p, 3, 6);
ListInsert(p, 4, 8);
ListInsert(p, 5, 10);
ListInsert(p, 6, 12);
PrintList(p);
DataType e;
ListDelete(p,&e,3);
PrintList(p);
printf("e=%d\n",e);
return 0;
}
数据结构的入栈、出栈
栈.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define Stack_Size 100
typedef char ElemType;
typedef struct
{
ElemType stack[Stack_Size];
int top;
}Stack;
void InitStack (Stack *S)
{ // if((S=(Stack*)malloc(sizeof(Stack)))==NULL)
// exit(OVERFLOW);
S->top=-1;
}
int StackEmpty(Stack S)
{
if(S.top==-1) return 1;
else return 0;
}
void StackPush(Stack *S, ElemType elem)
{//入栈
if(S->top==Stack_Size -1)
{ printf("%d","Stack is full");exit(0); }
int i=++S->top;
S->stack[i]=elem;
}
void StackPop(Stack *S,ElemType *elem)
{//出栈
if(StackEmpty(*S)) {printf("%d","Stack is empty");exit(0);}
else *elem=S->stack[S->top--];}
int main(int argc, char* argv[])
{
Stack s;
InitStack (&s);
StackPush(&s, 'A');
StackPush(&s, 'B');
StackPush(&s, 'C');
StackPush(&s, 'D');
ElemType e;
StackPop(&s,&e);
printf("%c",e);
StackPop(&s,&e);
printf("%c",e);
StackPush(&s, 'E');
StackPop(&s,&e);
printf("%c",e);
StackPop(&s,&e);
printf("%c",e);
StackPop(&s,&e);
printf("%c",e);
return 0;
}
Web表格翻牌游戏(未完成版)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">;
var cow=2
var col=2
var myArray=new Array(30);
function init(cow,col)
{
var n= (cow*col)/2;
for(var k=1;k<=n;k++)
{
myArray[k]= parseInt( Math.random()*n)+1;
myArray[(k+n)]=myArray[k];
}
var str='<table border="1">';
for (var i=0;i<cow;i++)
{
str +="<tr>";
for (var j=1;j<=col;j++)
{
str+="<td onclick='test("+(i*col+j)+");'>"
str+='<img id="img_'+(i*col+j)+'"src="photo/image0.gif"/>'
str+="</td>";
}
str +="</tr>";
}
str +='</table>';
document.getElementById("w").innerHTML=str;
}
function onre()
{
init(cow,col)
cow+=2;
col+=2;
document.getElementById("next").value="下一关";
currImgNo=lastImgNo=-1
}
function test(tmp)
{
lastImgNo=currImgNo;
currImgNo=tmp;
var currImg=document.getElementById("img_"+tmp);
currImg.src="photo/image"+myArray[tmp]+".gif";
if(lastImgNo>=0)
{
if(myArray[currImgNo]==myArray[lastImgNo])
{
alert("成功")
currImgNo=lastImgNo=-1
}
else
{
var lastImg=document.getElementById("img_"+lastImgNo);
lastImg.src="photo/image0.gif";
}
}
}
</script>
</head>
<body>
<div id="w"> text </div>
<hr />
<p>
<input name="提交" type="button" id="next" onclick="onre();" value="开始" />
</p>
</body>
</html>
第七周学习进度表
周数 |
专业学习目标 |
专业学习时间 |
新增代码量 |
博客发表量 |
人文方面的学习 |
知识技能总结 |
第七周 |
链表空间的申请,结点的应用,栈的入栈和出栈等使用,Html表格翻牌游戏制作 |
3h |
110行 |
3 |
《活出生命的意义》、《东周列国志》 |
数据结构空间申请后没有输出:表格翻牌游戏运行失败,小问题太多,不够细致。 |