本文共 1537 字,大约阅读时间需要 5 分钟。
今上午老师布置的作业,很不情愿的写了个单链表。。。发现长时间不写确实很难一步写对,调试了20分钟,可算是写完了,
感觉应该是对了,测了几组数据没啥问题.....
代码如下:
#include#include #include #include #include using namespace std;//链表数据类型struct List{ int data; List * next;};//链表初始化List* init(){ return NULL;}//链表的创建List* Create (List* L){ if(L) { printf("链表未初始化\n"); return NULL; } L=(List*)malloc(sizeof(List)); L->next=NULL; printf("请输入链表长度: "); int len; List* p=L; scanf("%d",&len); printf("请按递增的顺序输入元素\n"); for (int i=0;i data=data; New->next=NULL; p->next=New; p=New; } return L;}//求链表的长度void List_Len (List* L){ if(L==NULL) { printf("链表未创建\n"); return; } int len=0; List* p=L->next; while (p) { p=p->next; len++; } printf("链表的长度为%d\n",len);}//遍历单链表void Traverse (List* L){ if(L==NULL) { printf("链表未创建\n"); return; } List* p=L->next; printf("链表元素如下:\n"); while (p) { printf("%d%c",p->data,p->next==NULL?'\n':' '); p=p->next; }}//插入元素bool Insert (List* L){ if(L==NULL) { printf("链表还未创建\n"); return false; } printf("请输入想要插入的元素: "); int Data; scanf("%d",&Data); List* p=L; while (p->next&&p->next->data next; } List* New=(List*)malloc(sizeof(List)); New->data=Data; New->next=p->next; p->next=New; return true;}int main(){ List* Head; Head=init(); Head=Create(Head); Traverse(Head); List_Len(Head); if(Insert(Head)) printf("插入成功\n"); else printf("插入失败\n"); Traverse(Head); List_Len(Head); return 0;}/*运行结果如下:请输入链表长度: 3请按递增的顺序输入元素1 2 3链表元素如下:1 2 3链表的长度为3请输入想要插入的元素: 4插入成功链表元素如下:1 2 3 4链表的长度为4*/
转载地址:http://daaen.baihongyu.com/