|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近刚学链表,写了这个代码,但并没有发现输出,有没有人帮忙看看啊,谢了。
代码目标是在一个链表中,按照从小到大顺序,插入一个节点。
#include <iostream>
#include <stdio.h>
#include <malloc.h>
using namespace std;
typedef struct Node
{
int data;
struct Node*pNext;
}node,*pnode;
pnode creatnode()
{
int num,i,b,val;
pnode phead=(pnode)malloc(sizeof(Node));
//printf("输入多少个节点:");
scanf("%d",&num);
pnode tail=phead;
tail->pNext=NULL;
for(i=0;i<num;i++)
{
pnode pnew=(pnode)malloc(sizeof(Node));
// printf("第%d个结点值为:",i+1);
scanf("%d",&val);
pnew->data=val;
tail->pNext=pnew;
tail=pnew;
tail->pNext=NULL;
}
return phead;
}
int print(pnode phead)
{
pnode p=phead;
while((p->pNext)!=NULL)
{
p=p->pNext;
cout<<p->data<<" ";
}
return 0;
}
int del(pnode phead)
{
pnode p=phead,n=phead;
while((p)!=NULL)
{
delete p;
n=n->pNext;
p=n;
}
}
int arrange(pnode phead,pnode newnode)
{
pnode p=phead;
pnode n;
pnode zj;
while((p->pNext)!=NULL)
{
if(((p->data)<=(newnode->data))&&((p->pNext->data)>(newnode->data)))
{
zj=p->pNext;
p->pNext=newnode;
newnode->pNext=zj;
break;
}
p=p->pNext;
}
return 0;
}
int main()
{
pnode phead;
phead=creatnode();
pnode newnode=(pnode)malloc(sizeof(Node));
scanf("%d",newnode->data);
arrange(phead,newnode);
print(phead);
del(phead);
return 0;
}
- #include <iostream>
- #include <stdio.h>
- #include <malloc.h>
- using namespace std;
- struct Node
- {
- int data;
- Node* pNext;
- };
- Node* Creatnode()
- {
- int num, i=1;
- Node* phead = (Node*)malloc(sizeof(Node));
- Node* tail = phead;
- printf("输入多少个节点:");
- scanf("%d", &num);
- printf("第%d个结点值为:", i);
- scanf("%d", &(phead->data));
- for (i = 2; i<=num; i++)
- {
- Node* pnew = (Node*)malloc(sizeof(Node));
- printf("第%d个结点值为:",i);
- scanf("%d", &(pnew->data));
- tail->pNext = pnew;
- tail = pnew;
- tail->pNext = NULL;
- }
- return phead;
- }
- void print(Node* phead)
- {
- Node* p = phead;
- while (p->pNext != NULL)
- {
- cout << p->data << " ";
- p = p->pNext;
- }
- cout << p->data << endl;
- }
- void del(Node* phead)
- {
- Node *p = phead, *n = phead;
- while (n->pNext != NULL)
- {
- p = n;
- n = n->pNext;
- delete p;
- }
- }
- void arrange(Node* phead, Node* newnode)
- {
- Node* p = phead;
- Node* zj;
- while (p->pNext != NULL)
- {
- if (((p->data) <= (newnode->data)) && ((p->pNext->data)>(newnode->data)))
- {
- zj = p->pNext;
- p->pNext = newnode;
- newnode->pNext = zj;
- break;
- }
- p = p->pNext;
- }
- if (p->pNext == NULL)
- {
- p->pNext = newnode;
- newnode->pNext = NULL;
- }
- }
- int main()
- {
- Node* phead;
- phead = Creatnode();
- Node* newnode = (Node*)malloc(sizeof(Node));
- printf("输入要插入的数\n");
- scanf("%d", &newnode->data);
- arrange(phead, newnode);
- print(phead);
- del(phead);
- return 0;
- }
复制代码
|
|