心得

                                                    上周学习心得  

    由于上周生病整个人都没什么学习的心情,软件社联和闽院所有社联搞“会歌大赛”的活动,所有社联新干部都要参加,还要排练。

碰巧朋友跟我诉苦开解她的同时自己也给渲染了,再次思考了自己的人生还好自己‘走’回来了。

    抱怨完说说上周的学习,高数这门课对于老师说的可以理解作业也可以应对。专业尤其是数据结构感觉好难,下面有一段代码,就填了一个地方

不知道你们会不反正我是半吊子,通过这一个代码说明生病真的不好耽误学习。有关专业的课平时还是要多看看书打打代码,不然很难跟上课程,不多说我还是去打代码吧,

会的朋友可以教下我哦。。

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
typedef int DataType;

typedef struct LNode {
DataType data; /*存储结点值*/
LNode *next; /*链表下一结点的地址*/
}LNode,*LinkList;

/*1.初始化链表函数,返回带头结点的单链表的头指针*/
struct LNode * InitList(){
struct LNode *pHead=(struct LNode *) malloc(sizeof(LNode));//为链表的头指针分配内存空间
if(pHead!=NULL)
pHead->next=NULL;
return pHead;
}

/*在带头结点的单链表中,查找第i(1≤i≤n)个结点,如果找到,则返回该结点的存储位置,否则返回NULL */
LNode *Locate(LNode *head,int i){
int k;
LNode *p=head;
for(k=0;k<i;k++){
if(p==NULL) return NULL;
p=p->next; //移动指针
}
return p;
}

//在第i个节点之前添加数据y,成功添加返回该节点的指针,否则返回空
struct LNode *InsertNode(struct LNode *head,int i,DataType y){
struct LNode *p=Locate(head,i-1);//先获取在第i个节点之前的指针
struct LNode *s;
if(p!=NULL){
s=(LNode *) malloc(sizeof(LNode));//分配新节点的内存空间
if(s==NULL) return NULL;
s->data=y;
s->next=p->next; //添加数据
p->next=s;
}
return p;
}

//删除第i个节点的数据,成功删除返回1,否则返回-1
int DelNode(LNode *head,int i)
{
//添加代码
LNode *p,*q;
int j=1;
p=head;
if (i<1)

return -1;

while (p->next!=NULL&&j<i)
{
p=p->next;
j++;
}
if (j!=i)
return -1;
else
{
q=p->next;
p->next=q->next;

free(q);
}
return 1;
}

//在第i个节点之后添加数据y,成功添加返回该节点的指针,否则返回空
struct LNode *InsertNodeAfter(struct LNode *head,int i,DataType y){
//添加代码
return NULL;
}
/*在带头结点的单链表中,查找按指定值等于key的结点,如果找到返回该值顺序位置,否则返回-1 缺陷 ,修改*/
int LocateKey(LNode *pHead, DataType key){
int n=0;
LNode *p=pHead;
while(p!=NULL){
p=p->next;
if(p->data==key)
return n+1;
n++;
}
return -1;
}

/*在带头结点的单链表中,获取第i个节点的数据保存到y中,如果成功获取返回1,否则返回0*/
int GetData(LNode *head, int i,DataType &y){
//添加代码
return 1;
}

//打印输出链表的每一个节点的数据值
void PrintList(LNode *pHead)
{
int n=0;
if(pHead==NULL) return;
LNode *p=pHead->next;
while(p!=NULL){
printf("%d ",p->data);
n++;
p=p->next;
}
printf(" length=%d\n",n);
}

int main(int argc, char* argv[])
{ //验证
LNode *head=InitList(); //获取带头结点的单链表的头指针
InsertNode(head,1,99);
InsertNode(head,2,90);
InsertNode(head,3,990);

PrintList(head);

DelNode(head,3);
PrintList(head);
return 0;

 

posted on 2016-03-22 20:50  浅笑1  阅读(286)  评论(1编辑  收藏  举报