第七周技术博客

数据结构的链表空间申请、插入元素,创建结点、删除结点。

// 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

《活出生命的意义》、《东周列国志》

数据结构空间申请后没有输出:表格翻牌游戏运行失败,小问题太多,不够细致。

posted on 2016-04-04 20:51  废躯残骸  阅读(122)  评论(0编辑  收藏  举报