链表,折磨人的数据结构
2016-03-22 22:28
225 查看
链表,折磨人的数据结构
要有一周的时间没更博了,这段时间我暂停了计蒜课的刷题,是因为我把《征服c指针》看完了。当然这本肯定不会只读一遍,我感觉按我目前的知识水平,应该之吸收了20%不到。所以我准备在学一点数据结构再去看一遍。学校开设的数据结构课开始疯狂的折磨人了。我每次翻开学校的教材,看着上面乱糟糟的排版,真的有一种想撕碎它的冲动。今天特别不在状态,在上完上机课后我就感觉特别累,莫名其妙的累。当然可能是上午上了两节高数后又上了三节数据结构的原因。今天上机给的实验题目就是链表的建立插入与删除,今天写的代码是我写过的链表代码最成功的一次,一次性编译通过,没有任何bug
,这个feel太爽!下面给出代码:
#include<stdio.h> #include<stdlib.h> typedef struct Node { int data; struct Node *next; }Node; void creatnode(Node *head) { Node *temp,*p; p=head; int n; scanf("%d",&n); while(n!=-1) { temp=malloc(sizeof(Node)); if(temp==NULL) { printf("No enough memory"); exit(0); } temp->data=n; temp->next=NULL; p->next=temp; p=temp; scanf("%d",&n); } } void Print(Node *head) { Node *p; p=head->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } void Insertnode(Node *head) { printf("Now insert the data:"); int e; scanf("%d",&e); Node *p,*pre,*temp; temp=malloc(sizeof(Node)); temp->data=e; temp->next=NULL; pre=head; p=pre->next;//1 2 3 5 while(p!=NULL) { if(e<=p->data) { pre->next=temp; temp->next=p; break; } pre=p; p=p->next; } if(p==NULL) { pre->next=temp; } } void Deletenode(Node *head) { Node *p,*pre; pre=head; p=pre->next; printf("Now delete the data:"); int n; scanf("%d",&n); while(p!=NULL) { if(p->data==n) { pre->next=p->next; free(p); break; } pre=p; p=p->next; } if(p==NULL) printf("No found\n"); } void FREE(Node *head) { Node *pre=head; while(head!=NULL) { pre=head; head=head->next; free(pre); } } int main() { Node *head; head=malloc(sizeof(Node)); creatnode(head); printf("Before insert:"); Print(head); Insertnode(head); printf("After insert:"); Print(head); Deletenode(head); printf("After delete:"); Print(head); FREE(head); return 0; }太累了,也许是因为写了太多遍就没有写注释。这是最简单的单向链表。今天数据结构课还介绍了,对就仅仅只是介绍了双向链表,循环链表,静态链表。看着这些伪代码,我真的没有把他们翻译成c语言的冲动,哎!
我也不知道为什么今天这么累,有可能是数据结构课上接触到的目前对我来说对我来说高难度数据结构让我感觉亚历山大,因为我一直自学在前面,一直以来上课教的东西对我来说是很轻松的,但数据结构教的东西让我很有压力,感觉心里失衡吧。
总是说今天很累很累,但是今天也有高兴的事,我以绩点第一拿到了班级奖学金,和综测第六拿到了优秀学生奖学金二等奖。话说中学一直在名校读,从来都还没有拿到过奖学金呢。
我感觉我还是太心急了,太迫切的想完全掌握c语言,导致我对出现的让我暂时不能明白的知识有点压力。以后要调整这种心态,不能太急功近利。
相关文章推荐
- 数据结构课设 家谱处理 (map)
- poj 2777(线段树+区间染色)
- 数据结构 串匹配 好难懂
- 每周数据结构【5】:在二叉树中递归查找为data值的点
- 数据结构顺序表
- HDU 4763 数据结构之KMP+二分
- Python 数据结构与算法——deque(双端队列)
- 重学数据结构系列之——二叉树基础
- 算法与数据结构学习笔记系列——递归(1)
- HDU 4081 次小生成树变形记
- Python 数据结构与算法——拓扑排序
- 数据结构学习笔记02堆栈
- 数据结构——单链表的初操作
- 数据结构第一题线性表的各种操作SqList
- 大话数据结构--第四章 栈与队列
- 经典算法与数据结构的c++实现——快速排序
- 数据结构学习路线+笔记
- 数据结构(Data Structure)——0、数据类型
- 数据结构(看了之后还不懂我退出IT界)
- HDU 5137 数据结构之最短路